Imported Upstream version 5.21.9 22/136022/1
authorDongHun Kwak <dh0128.kwak@samsung.com>
Wed, 28 Jun 2017 01:39:52 +0000 (10:39 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Wed, 28 Jun 2017 01:39:57 +0000 (10:39 +0900)
Change-Id: I2e9bff5bdfd49756279804671ff50b6de9ab5c24
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
511 files changed:
AUTHORS
Configure
Cross/Makefile-cross-SH
Cross/config.sh-arm-linux
Cross/config.sh-arm-linux-n770
INSTALL
MANIFEST
META.json
META.yml
Makefile.SH
NetWare/Makefile
NetWare/config.wc
NetWare/config_H.wc
Porting/Glossary
Porting/Maintainers.pl
Porting/bench.pl
Porting/bisect-runner.pl
Porting/checkAUTHORS.pl
Porting/cmpVERSION.pl
Porting/config.sh
Porting/config_H
Porting/corelist-perldelta.pl
Porting/epigraphs.pod
Porting/how_to_write_a_perldelta.pod
Porting/perl5220delta.pod
Porting/perldelta_template.pod
Porting/perlhist_calculate.pl
Porting/pumpkin.pod
Porting/release_managers_guide.pod
Porting/release_schedule.pod
Porting/todo.pod
README.haiku
README.hpux
README.macosx
README.os2
README.os390
README.vms
charclass_invlists.h
config_h.SH
configure.com
cpan/B-Debug/Debug.pm
cpan/CPAN-Meta-Requirements/lib/CPAN/Meta/Requirements.pm
cpan/CPAN-Meta-Requirements/t/basic.t
cpan/CPAN-Meta-Requirements/t/strings.t
cpan/CPAN/lib/CPAN/Author.pm
cpan/CPAN/lib/CPAN/CacheMgr.pm
cpan/CPAN/lib/CPAN/FTP.pm
cpan/CPAN/lib/CPAN/HTTP/Client.pm
cpan/CPAN/lib/CPAN/HandleConfig.pm
cpan/CPAN/lib/CPAN/Index.pm
cpan/CPAN/lib/CPAN/LWP/UserAgent.pm
cpan/CPAN/lib/CPAN/Mirrors.pm
cpan/Config-Perl-V/V.pm
cpan/Config-Perl-V/t/10_base.t
cpan/Encode/Encode.pm
cpan/Encode/Encode.xs
cpan/Encode/Makefile.PL
cpan/Encode/bin/enc2xs
cpan/Encode/bin/encguess [new file with mode: 0644]
cpan/Encode/encoding.pm
cpan/Encode/lib/Encode/MIME/Header.pm
cpan/Encode/t/taint.t
cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
cpan/Perl-OSType/lib/Perl/OSType.pm
cpan/Pod-Parser/lib/Pod/Find.pm
cpan/Pod-Parser/lib/Pod/InputObjects.pm
cpan/Pod-Parser/lib/Pod/ParseUtils.pm
cpan/Pod-Parser/lib/Pod/Parser.pm
cpan/Pod-Parser/lib/Pod/PlainText.pm
cpan/Pod-Parser/lib/Pod/Select.pm
cpan/Pod-Parser/t/pod/find.t
cpan/Pod-Perldoc/Makefile.PL
cpan/Pod-Perldoc/lib/Pod/Perldoc.pm
cpan/Pod-Perldoc/lib/Pod/Perldoc/BaseTo.pm
cpan/Pod-Perldoc/lib/Pod/Perldoc/GetOptsOO.pm
cpan/Pod-Perldoc/lib/Pod/Perldoc/ToANSI.pm
cpan/Pod-Perldoc/lib/Pod/Perldoc/ToChecker.pm
cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm
cpan/Pod-Perldoc/lib/Pod/Perldoc/ToNroff.pm
cpan/Pod-Perldoc/lib/Pod/Perldoc/ToPod.pm
cpan/Pod-Perldoc/lib/Pod/Perldoc/ToRtf.pm
cpan/Pod-Perldoc/lib/Pod/Perldoc/ToTerm.pm
cpan/Pod-Perldoc/lib/Pod/Perldoc/ToText.pm
cpan/Pod-Perldoc/lib/Pod/Perldoc/ToTk.pm
cpan/Pod-Perldoc/lib/Pod/Perldoc/ToXml.pm
cpan/Pod-Perldoc/t/man/_get_columns.t
cpan/Socket/Makefile.PL
cpan/Socket/Socket.pm
cpan/Socket/Socket.xs
cpan/Socket/t/getnameinfo.t
cpan/Test-Simple/lib/Test/Builder.pm
cpan/Test-Simple/lib/Test/Builder/Module.pm
cpan/Test-Simple/lib/Test/Builder/Tester.pm
cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm
cpan/Test-Simple/lib/Test/FAQ.pod
cpan/Test-Simple/lib/Test/More.pm
cpan/Test-Simple/lib/Test/More/DeepCheck.pm
cpan/Test-Simple/lib/Test/More/DeepCheck/Strict.pm
cpan/Test-Simple/lib/Test/More/DeepCheck/Tolerant.pm
cpan/Test-Simple/lib/Test/More/Tools.pm
cpan/Test-Simple/lib/Test/MostlyLike.pm
cpan/Test-Simple/lib/Test/Simple.pm
cpan/Test-Simple/lib/Test/Stream.pm
cpan/Test-Simple/lib/Test/Stream/API.pm
cpan/Test-Simple/lib/Test/Stream/Architecture.pod
cpan/Test-Simple/lib/Test/Stream/ArrayBase.pm
cpan/Test-Simple/lib/Test/Stream/ArrayBase/Meta.pm
cpan/Test-Simple/lib/Test/Stream/Carp.pm
cpan/Test-Simple/lib/Test/Stream/Context.pm
cpan/Test-Simple/lib/Test/Stream/Event.pm
cpan/Test-Simple/lib/Test/Stream/Event/Bail.pm
cpan/Test-Simple/lib/Test/Stream/Event/Diag.pm
cpan/Test-Simple/lib/Test/Stream/Event/Finish.pm
cpan/Test-Simple/lib/Test/Stream/Event/Note.pm
cpan/Test-Simple/lib/Test/Stream/Event/Ok.pm
cpan/Test-Simple/lib/Test/Stream/Event/Plan.pm
cpan/Test-Simple/lib/Test/Stream/Event/Subtest.pm
cpan/Test-Simple/lib/Test/Stream/ExitMagic.pm
cpan/Test-Simple/lib/Test/Stream/ExitMagic/Context.pm
cpan/Test-Simple/lib/Test/Stream/Explanation.pod [new file with mode: 0644]
cpan/Test-Simple/lib/Test/Stream/Exporter.pm
cpan/Test-Simple/lib/Test/Stream/Exporter/Meta.pm
cpan/Test-Simple/lib/Test/Stream/ForceExit.pm
cpan/Test-Simple/lib/Test/Stream/IOSets.pm
cpan/Test-Simple/lib/Test/Stream/Meta.pm
cpan/Test-Simple/lib/Test/Stream/PackageUtil.pm
cpan/Test-Simple/lib/Test/Stream/Subtest.pm
cpan/Test-Simple/lib/Test/Stream/Tester.pm
cpan/Test-Simple/lib/Test/Stream/Tester/Checks.pm
cpan/Test-Simple/lib/Test/Stream/Tester/Checks/Event.pm
cpan/Test-Simple/lib/Test/Stream/Tester/Events.pm
cpan/Test-Simple/lib/Test/Stream/Tester/Events/Event.pm
cpan/Test-Simple/lib/Test/Stream/Tester/Grab.pm
cpan/Test-Simple/lib/Test/Stream/Threads.pm
cpan/Test-Simple/lib/Test/Stream/Toolset.pm
cpan/Test-Simple/lib/Test/Stream/Util.pm
cpan/Test-Simple/lib/Test/Tester.pm
cpan/Test-Simple/lib/Test/Tester/Capture.pm
cpan/Test-Simple/lib/Test/Tutorial/WritingTests.pod
cpan/Test-Simple/lib/Test/Tutorial/WritingTools.pod
cpan/Test-Simple/lib/Test/use/ok.pm
cpan/Test-Simple/lib/ok.pm
cpan/Test-Simple/t/Behavior/MonkeyPatching_diag.t
cpan/Test-Simple/t/Behavior/MonkeyPatching_plan.t
cpan/Test-Simple/t/Behavior/cmp_ok_undef.t [new file with mode: 0644]
cpan/Test-Simple/t/Behavior/event_clone_args.t [new file with mode: 0644]
cpan/Test-Simple/t/Behavior/skip_all_in_subtest.t
cpan/Test-Simple/t/Legacy/ribasushi_diag.t [deleted file]
cpan/Test-Simple/t/Legacy/subtest/basic.t
cpan/Test-Simple/t/Test-Stream-Event-Diag.t
cpan/Test-Simple/t/Test-Stream-ForceExit.t
cpan/Unicode-Collate/Collate.pm
cpan/Unicode-Collate/Collate/CJK/Big5.pm
cpan/Unicode-Collate/Collate/CJK/GB2312.pm
cpan/Unicode-Collate/Collate/CJK/JISX0208.pm
cpan/Unicode-Collate/Collate/CJK/Korean.pm
cpan/Unicode-Collate/Collate/CJK/Pinyin.pm
cpan/Unicode-Collate/Collate/CJK/Stroke.pm
cpan/Unicode-Collate/Collate/CJK/Zhuyin.pm
cpan/Unicode-Collate/Collate/Locale.pm
cpan/Unicode-Collate/Collate/Locale/af.pl
cpan/Unicode-Collate/Collate/Locale/ar.pl
cpan/Unicode-Collate/Collate/Locale/as.pl
cpan/Unicode-Collate/Collate/Locale/az.pl
cpan/Unicode-Collate/Collate/Locale/be.pl
cpan/Unicode-Collate/Collate/Locale/bg.pl
cpan/Unicode-Collate/Collate/Locale/bn.pl
cpan/Unicode-Collate/Collate/Locale/ca.pl
cpan/Unicode-Collate/Collate/Locale/cs.pl
cpan/Unicode-Collate/Collate/Locale/cy.pl
cpan/Unicode-Collate/Collate/Locale/da.pl
cpan/Unicode-Collate/Collate/Locale/de_phone.pl
cpan/Unicode-Collate/Collate/Locale/ee.pl
cpan/Unicode-Collate/Collate/Locale/eo.pl
cpan/Unicode-Collate/Collate/Locale/es.pl
cpan/Unicode-Collate/Collate/Locale/es_trad.pl
cpan/Unicode-Collate/Collate/Locale/et.pl
cpan/Unicode-Collate/Collate/Locale/fa.pl
cpan/Unicode-Collate/Collate/Locale/fi.pl
cpan/Unicode-Collate/Collate/Locale/fi_phone.pl
cpan/Unicode-Collate/Collate/Locale/fil.pl
cpan/Unicode-Collate/Collate/Locale/fo.pl
cpan/Unicode-Collate/Collate/Locale/fr.pl
cpan/Unicode-Collate/Collate/Locale/gu.pl
cpan/Unicode-Collate/Collate/Locale/ha.pl
cpan/Unicode-Collate/Collate/Locale/haw.pl
cpan/Unicode-Collate/Collate/Locale/hi.pl
cpan/Unicode-Collate/Collate/Locale/hr.pl
cpan/Unicode-Collate/Collate/Locale/hu.pl
cpan/Unicode-Collate/Collate/Locale/hy.pl
cpan/Unicode-Collate/Collate/Locale/ig.pl
cpan/Unicode-Collate/Collate/Locale/is.pl
cpan/Unicode-Collate/Collate/Locale/ja.pl
cpan/Unicode-Collate/Collate/Locale/kk.pl
cpan/Unicode-Collate/Collate/Locale/kl.pl
cpan/Unicode-Collate/Collate/Locale/kn.pl
cpan/Unicode-Collate/Collate/Locale/ko.pl
cpan/Unicode-Collate/Collate/Locale/kok.pl
cpan/Unicode-Collate/Collate/Locale/ln.pl
cpan/Unicode-Collate/Collate/Locale/lt.pl
cpan/Unicode-Collate/Collate/Locale/lv.pl
cpan/Unicode-Collate/Collate/Locale/mk.pl
cpan/Unicode-Collate/Collate/Locale/ml.pl
cpan/Unicode-Collate/Collate/Locale/mr.pl
cpan/Unicode-Collate/Collate/Locale/mt.pl
cpan/Unicode-Collate/Collate/Locale/nb.pl
cpan/Unicode-Collate/Collate/Locale/nn.pl
cpan/Unicode-Collate/Collate/Locale/nso.pl
cpan/Unicode-Collate/Collate/Locale/om.pl
cpan/Unicode-Collate/Collate/Locale/or.pl
cpan/Unicode-Collate/Collate/Locale/pa.pl
cpan/Unicode-Collate/Collate/Locale/pl.pl
cpan/Unicode-Collate/Collate/Locale/ro.pl
cpan/Unicode-Collate/Collate/Locale/ru.pl
cpan/Unicode-Collate/Collate/Locale/sa.pl
cpan/Unicode-Collate/Collate/Locale/se.pl
cpan/Unicode-Collate/Collate/Locale/si.pl
cpan/Unicode-Collate/Collate/Locale/si_dict.pl
cpan/Unicode-Collate/Collate/Locale/sk.pl
cpan/Unicode-Collate/Collate/Locale/sl.pl
cpan/Unicode-Collate/Collate/Locale/sq.pl
cpan/Unicode-Collate/Collate/Locale/sr.pl
cpan/Unicode-Collate/Collate/Locale/sv.pl
cpan/Unicode-Collate/Collate/Locale/sv_refo.pl
cpan/Unicode-Collate/Collate/Locale/ta.pl
cpan/Unicode-Collate/Collate/Locale/te.pl
cpan/Unicode-Collate/Collate/Locale/th.pl
cpan/Unicode-Collate/Collate/Locale/tn.pl
cpan/Unicode-Collate/Collate/Locale/to.pl
cpan/Unicode-Collate/Collate/Locale/tr.pl
cpan/Unicode-Collate/Collate/Locale/uk.pl
cpan/Unicode-Collate/Collate/Locale/ur.pl
cpan/Unicode-Collate/Collate/Locale/vi.pl
cpan/Unicode-Collate/Collate/Locale/wae.pl
cpan/Unicode-Collate/Collate/Locale/wo.pl
cpan/Unicode-Collate/Collate/Locale/yo.pl
cpan/Unicode-Collate/Collate/Locale/zh.pl
cpan/Unicode-Collate/Collate/Locale/zh_big5.pl
cpan/Unicode-Collate/Collate/Locale/zh_gb.pl
cpan/Unicode-Collate/Collate/Locale/zh_pin.pl
cpan/Unicode-Collate/Collate/Locale/zh_strk.pl
cpan/Unicode-Collate/Collate/Locale/zh_zhu.pl
cpan/Unicode-Collate/mkheader
cpan/Unicode-Collate/t/loc_es.t
cpan/Unicode-Collate/t/loc_estr.t
cpan/Unicode-Collate/t/loc_fr.t
cpan/Win32/Win32.pm
cpan/Win32/Win32.xs
cpan/Win32API-File/File.pm
cpan/Win32API-File/File.xs
cpan/perlfaq/lib/perlfaq.pm
cpan/perlfaq/lib/perlfaq.pod
cpan/perlfaq/lib/perlfaq1.pod
cpan/perlfaq/lib/perlfaq2.pod
cpan/perlfaq/lib/perlfaq3.pod
cpan/perlfaq/lib/perlfaq4.pod
cpan/perlfaq/lib/perlfaq5.pod
cpan/perlfaq/lib/perlfaq6.pod
cpan/perlfaq/lib/perlfaq7.pod
cpan/perlfaq/lib/perlfaq8.pod
cpan/perlfaq/lib/perlfaq9.pod
cpan/perlfaq/lib/perlglossary.pod
dist/Carp/lib/Carp.pm
dist/Carp/lib/Carp/Heavy.pm
dist/Carp/t/arg_regexp.t
dist/Carp/t/arg_string.t
dist/Data-Dumper/Changes
dist/Data-Dumper/Dumper.pm
dist/Data-Dumper/Dumper.xs
dist/ExtUtils-CBuilder/Changes
dist/IO/t/io_sock.t
dist/Math-BigInt/t/bigintpm.inc
dist/Math-BigInt/t/upgrade.inc
dist/Module-CoreList/Changes
dist/Module-CoreList/lib/Module/CoreList.pm
dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm
dist/Module-CoreList/lib/Module/CoreList/Utils.pm
dist/Safe/Changes
dist/Storable/ChangeLog
dist/Storable/Storable.pm
dist/Storable/Storable.xs
dist/Storable/t/attach_errors.t
dist/bignum/lib/bigint.pm
dist/bignum/lib/bignum.pm
dist/bignum/lib/bigrat.pm
dist/constant/lib/constant.pm
dist/threads-shared/lib/threads/shared.pm
dist/threads-shared/shared.xs
dist/threads-shared/t/hv_refs.t
djgpp/djgppsed.sh
doio.c
doop.c
dquote_static.c
dump.c
embed.fnc
embed.h
embedvar.h
ext/B/B.pm
ext/B/B.xs
ext/B/t/OptreeCheck.pm
ext/Devel-Peek/Peek.pm
ext/Devel-Peek/Peek.xs
ext/Devel-Peek/t/Peek.t
ext/DynaLoader/DynaLoader_pm.PL
ext/DynaLoader/dl_vms.xs
ext/Errno/Errno_pm.PL
ext/ExtUtils-Miniperl/lib/ExtUtils/Miniperl.pm
ext/File-DosGlob/t/DosGlob.t
ext/Opcode/Opcode.pm
ext/Opcode/Opcode.xs
ext/POSIX/POSIX.xs
ext/POSIX/lib/POSIX.pm
ext/PerlIO-scalar/scalar.pm
ext/PerlIO-scalar/scalar.xs
ext/PerlIO-scalar/t/scalar.t
ext/Pod-Functions/t/Functions.t
ext/Pod-Html/t/crossref.pod
ext/Pod-Html/t/crossref.t
ext/Pod-Html/t/crossref2.t
ext/Pod-Html/t/crossref3.t
ext/SDBM_File/Makefile.PL
ext/SDBM_File/sdbm.h
ext/VMS-Stdio/Stdio.pm
ext/Win32CORE/Win32CORE.c
ext/XS-APItest/t/grok.t
ext/XS-APItest/t/multicall.t
ext/arybase/ptable.h
ext/attributes/attributes.pm
ext/attributes/attributes.xs
ext/re/re.pm
ext/re/t/lexical_debug.pl
ext/re/t/lexical_debug.t
ext/re/t/re.t
ext/re/t/reflags.t
ext/re/t/strict.t
feature.h
gv.c
handy.h
hints/catamount.sh
hints/os390.sh
hints/solaris_2.sh
hv.c
inline_invlist.c
installman
intrpvar.h
iperlsys.h
lib/B/Deparse.pm
lib/B/Deparse.t
lib/B/Op_private.pm
lib/Benchmark.pm
lib/DB.t
lib/Unicode/UCD.pm
lib/Unicode/UCD.t
lib/feature.pm
lib/overload.pm
lib/overload.t
lib/overload/numbers.pm
lib/unicore/auxiliary/SBTest.txt [new file with mode: 0644]
lib/unicore/auxiliary/WBTest.txt [new file with mode: 0644]
lib/unicore/mktables
lib/warnings.pm
locale.c
makedef.pl
malloc.c
mathoms.c
metaconfig.SH
mg.c
numeric.c
op.c
opcode.h
opnames.h
overload.c
overload.h
patchlevel.h
perl.c
perl.h
perlio.c
perlio.h
perlsdio.h
perly.act
perly.h
perly.tab
perly.y
plan9/config.plan9
plan9/config_sh.sample
pod/.gitignore
pod/perl.pod
pod/perl5202delta.pod [new file with mode: 0644]
pod/perl5218delta.pod [new file with mode: 0644]
pod/perlcheat.pod
pod/perlclib.pod
pod/perldebguts.pod
pod/perldelta.pod
pod/perldiag.pod
pod/perldsc.pod
pod/perlexperiment.pod
pod/perlhist.pod
pod/perllocale.pod
pod/perlmodstyle.pod
pod/perlop.pod
pod/perlport.pod
pod/perlre.pod
pod/perlrebackslash.pod
pod/perlrecharclass.pod
pod/perlrequick.pod
pod/perlreref.pod
pod/perlretut.pod
pod/perlrun.pod
pod/perlsource.pod
pod/perlsub.pod
pod/perlunicode.pod
pod/perlunicook.pod
pod/perlvar.pod
pp.c
pp.h
pp_ctl.c
pp_hot.c
pp_pack.c
pp_proto.h
pp_sort.c
pp_sys.c
proto.h
regcharclass.h
regcomp.c
regcomp.h
regcomp.sym
regen/charset_translations.pl
regen/feature.pl
regen/mk_invlists.pl
regen/op_private
regen/opcode.pl
regen/opcodes
regen/overload.pl
regen/regcharclass.pl
regen/regen_lib.pl
regen/warnings.pl
regexec.c
regnodes.h
sv.c
symbian/config.sh
t/base/lex.t
t/base/rs.t
t/comp/parser.t
t/comp/utf.t
t/io/bom.t
t/lib/croak/toke
t/lib/warnings/op
t/lib/warnings/regexec
t/loc_tools.pl
t/op/attrs.t
t/op/bop.t
t/op/caller.t
t/op/dor.t
t/op/dump.t [new file with mode: 0644]
t/op/gv.t
t/op/infnan.t
t/op/lex.t
t/op/method.t
t/op/pack.t
t/op/repeat.t
t/op/stat.t
t/op/taint.t
t/op/tr.t
t/opbasic/qq.t
t/porting/checkcase.t
t/porting/customized.dat
t/porting/customized.t
t/porting/diag.t
t/porting/known_pod_issues.dat
t/porting/podcheck.t
t/porting/utils.t
t/re/pat.t
t/re/pat_re_eval.t
t/re/re_tests
t/re/reg_eval_scope.t
t/re/reg_mesg.t
t/re/speed.t
t/run/locale.t
t/run/switchd.t
t/test.pl
t/uni/cache.t
t/win32/system_tests
toke.c
uconfig.h
uconfig.sh
uconfig64.sh
utf8.c
utf8.h
util.c
utils.lst
utils/Makefile.PL
utils/encguess.PL [new file with mode: 0644]
utils/h2ph.PL
vms/descrip_mms.template
vms/vms.c
vms/vmsish.h
warnings.h
win32/Makefile
win32/config.ce
win32/config.gc
win32/config.vc
win32/config_sh.PL
win32/makefile.mk
win32/pod.mak
win32/runperl.c
win32/vdir.h
win32/vmem.h
win32/win32.c
win32/win32.h
win32/win32iop.h
win32/wince.c

diff --git a/AUTHORS b/AUTHORS
index 7f2b8f0..97b8558 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -702,6 +702,7 @@ Krishna Sethuraman          <krishna@sgi.com>
 Kriton Kyrimis                 <kyrimis@princeton.edu>
 Kurt D. Starsinic              <kstar@wolfetech.com>
 Kyriakos Georgiou
+Lajos Veres                    <vlajos@gmail.com>
 Larry Parmelee                 <parmelee@CS.Cornell.EDU>
 Larry Schuler
 Larry Schwimmer                        <rosebud@cyclone.Stanford.EDU>
@@ -987,6 +988,7 @@ Randal L. Schwartz          <merlyn@stonehenge.com>
 Randall Gellens                        <randy@qualcomm.com>
 Randolf Werner                 <randolf.werner@sap.com>
 Randy J. Ray                   <rjray@redhat.com>
+Randy Stauner                  <rwstauner@cpan.org>
 Randy W. Sims
 Raphael Manfredi               <Raphael.Manfredi@pobox.com>
 Raul Dias                      <raul@dias.com.br>
index 6e7d8f1..034104f 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -618,7 +618,9 @@ d_lgamma_r=''
 d_libm_lib_version=''
 d_link=''
 d_llrint=''
+d_llrintl=''
 d_llround=''
+d_llroundl=''
 d_localtime_r=''
 d_localtime_r_needs_tzset=''
 localtime_r_proto=''
@@ -634,7 +636,9 @@ longdblsize=''
 d_longlong=''
 longlongsize=''
 d_lrint=''
+d_lrintl=''
 d_lround=''
+d_lroundl=''
 d_lseekproto=''
 d_lstat=''
 d_madvise=''
@@ -16016,10 +16020,18 @@ eval $inlibc
 set llrint d_llrint
 eval $inlibc
 
+: see if llrintl exists
+set llrintl d_llrintl
+eval $inlibc
+
 : see if llround exists
 set llround d_llround
 eval $inlibc
 
+: see if llroundl exists
+set llroundl d_llroundl
+eval $inlibc
+
 : see if localtime_r exists
 set localtime_r d_localtime_r
 eval $inlibc
@@ -16159,10 +16171,18 @@ eval $inlibc
 set lrint d_lrint
 eval $inlibc
 
+: see if lrintl exists
+set lrintl d_lrintl
+eval $inlibc
+
 : see if lround exists
 set lround d_lround
 eval $inlibc
 
+: see if lroundl exists
+set lroundl d_lroundl
+eval $inlibc
+
 : see if prototype for lseek is available
 echo " "
 set d_lseekproto lseek $i_systypes sys/types.h $i_unistd unistd.h
@@ -23981,7 +24001,9 @@ d_libm_lib_version='$d_libm_lib_version'
 d_libname_unique='$d_libname_unique'
 d_link='$d_link'
 d_llrint='$d_llrint'
+d_llrintl='$d_llrintl'
 d_llround='$d_llround'
+d_llroundl='$d_llroundl'
 d_localtime64='$d_localtime64'
 d_localtime_r='$d_localtime_r'
 d_localtime_r_needs_tzset='$d_localtime_r_needs_tzset'
@@ -23993,7 +24015,9 @@ d_logb='$d_logb'
 d_longdbl='$d_longdbl'
 d_longlong='$d_longlong'
 d_lrint='$d_lrint'
+d_lrintl='$d_lrintl'
 d_lround='$d_lround'
+d_lroundl='$d_lroundl'
 d_lseekproto='$d_lseekproto'
 d_lstat='$d_lstat'
 d_madvise='$d_madvise'
index eb673ce..3260be4 100644 (file)
@@ -14,7 +14,7 @@ Makefile=Makefile-cross-$CROSS_NAME
 # are removed/replaced in patches on blead, but are still needed in the
 # 5.8.x, 5.6.x and 5.005.x maintenance tracks.
 # metaconfig -m will scan all .SH files on this level (not deeper), and
-# not in x2p and other subfolders. This file is as good as any .SH
+# not in other subfolders. This file is as good as any .SH
 # patch   references
 # #22227 $baserev
 # #22302 $yacc $byacc
@@ -966,7 +966,6 @@ _mopup:
 _tidy:
        -cd pod; $(LDLIBPTH) $(MAKE) clean
        -cd utils; $(LDLIBPTH) $(MAKE) clean
-       -cd x2p; $(LDLIBPTH) $(MAKE) clean
        -@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) $(nonxs_ext) ; do \
        $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --target=clean $$x MAKE=$(MAKE) ; \
        done
@@ -975,7 +974,6 @@ _cleaner1:
        -cd os2; rm -f Makefile
        -cd pod; $(LDLIBPTH) $(MAKE) $(CLEAN)
        -cd utils; $(LDLIBPTH) $(MAKE) $(CLEAN)
-       -cd x2p; $(LDLIBPTH) $(MAKE) $(CLEAN)
        -@if test -f miniperl$(EXE_EXT) ; then \
        for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) $(nonxs_ext) ; do \
        $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --target=$(CLEAN) $$x MAKE=$(MAKE) ; \
@@ -1055,7 +1053,6 @@ xconfig.h: config_h.SH Cross/config-$(CROSS_NAME).sh
 depend: makedepend
        sh ./makedepend MAKE=$(MAKE)
        - test -s perlmain.c && touch perlmain.c
-       cd x2p; $(MAKE) depend
 
 # Cannot postpone this until $firstmakefile is ready ;-)
 makedepend: makedepend.SH config.sh
@@ -1082,7 +1079,7 @@ _test_prep:
 test_prep_pre: preplibrary utilities $(nonxs_ext)
 
 test_prep: test_prep_pre miniperl$(EXE_EXT) $(unidatafiles) perl$(EXE_EXT) \
-       $(dynamic_ext) $(TEST_PERL_DLL) x2p/s2p x2p/find2perl
+       $(dynamic_ext) $(TEST_PERL_DLL)
        PERL=./perl $(MAKE) _test_prep
 
 _test_tty:
@@ -1288,44 +1285,6 @@ define)
     echo "This is an EBCDIC system, checking if any parser files need regenerating." >&2
 case "$osname" in
 os390|posix-bc)
-    if cd x2p
-    then
-        rm -f y.tab.c y.tab.h
-        case "$osname" in
-        posix-bc)
-           # we are using two different yaccs in BS2000 Posix!
-           byacc a2p.y >/dev/null 2>&1
-           ;;
-        *) # e.g. os390
-           yacc  a2p.y >/dev/null 2>&1
-           ;;
-        esac
-        if cmp -s y.tab.c a2p.c
-        then
-            rm -f y.tab.c
-        else
-            echo "a2p.y -> a2p.c" >&2
-            mv -f y.tab.c a2p.c
-            chmod u+w a2p.c
-            sed -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \
-               -e 's|^static void __YY_YACC_MAIN.*BS2000.*|/*static main deleted*/|' \
-                -e 's/y\.tab/a2p/g' a2p.c >a2p.tmp && mv a2p.tmp a2p.c
-            xxx="$xxx a2p.c"
-        fi
-        # In case somebody yacc -d:ed the a2p.y.
-        if test -f y.tab.h
-        then
-            if cmp -s y.tab.h a2p.h
-            then
-                rm -f y.tab.h
-            else
-                echo "a2p.h -> a2p.h" >&2
-                mv -f y.tab.h a2p.h
-                xxx="$xxx a2p.h"
-            fi
-        fi
-        cd ..
-    fi
     ;;
 *)
     echo "'$osname' is an EBCDIC system I don't know that well." >&4
index 495063a..3f39d10 100644 (file)
@@ -32,12 +32,12 @@ alignbytes='4'
 ansi2knr=''
 aphostname='/bin/hostname'
 api_revision='5'
-api_subversion='8'
+api_subversion='9'
 api_version='21'
-api_versionstring='5.21.8'
+api_versionstring='5.21.9'
 ar='ar'
-archlib='/usr/lib/perl5/5.21.8/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.21.8/armv4l-linux'
+archlib='/usr/lib/perl5/5.21.9/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.21.9/armv4l-linux'
 archname64=''
 archname='armv4l-linux'
 archobjs=''
@@ -56,7 +56,7 @@ castflags='0'
 cat='cat'
 cc='cc'
 cccdlflags='-fpic'
-ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.21.8/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.21.9/armv4l-linux/CORE'
 ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccname='arm-linux-gcc'
@@ -332,7 +332,9 @@ d_lgamma_r='undef'
 d_libm_lib_version='define'
 d_link='define'
 d_llrint='undef'
+d_llrintl='undef'
 d_llround='undef'
+d_llroundl='undef'
 d_localtime64='undef'
 d_localtime_r='undef'
 d_localtime_r_needs_tzset='undef'
@@ -344,7 +346,9 @@ d_logb='undef'
 d_longdbl='define'
 d_longlong='define'
 d_lrint='undef'
+d_lrintl='undef'
 d_lround='undef'
+d_lroundl='undef'
 d_lseekproto='define'
 d_lstat='define'
 d_madvise='define'
@@ -789,7 +793,7 @@ inc_version_list=' '
 inc_version_list_init='0'
 incpath=''
 inews=''
-installarchlib='./install_me_here/usr/lib/perl5/5.21.8/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.21.9/armv4l-linux'
 installbin='./install_me_here/usr/bin'
 installhtml1dir=''
 installhtml3dir=''
@@ -797,13 +801,13 @@ installman1dir='./install_me_here/usr/share/man/man1'
 installman3dir='./install_me_here/usr/share/man/man3'
 installprefix='./install_me_here/usr'
 installprefixexp='./install_me_here/usr'
-installprivlib='./install_me_here/usr/lib/perl5/5.21.8'
+installprivlib='./install_me_here/usr/lib/perl5/5.21.9'
 installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.21.8/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.21.9/armv4l-linux'
 installsitebin='./install_me_here/usr/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.21.8'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.21.9'
 installsiteman1dir='./install_me_here/usr/share/man/man1'
 installsiteman3dir='./install_me_here/usr/share/man/man3'
 installsitescript='./install_me_here/usr/bin'
@@ -933,8 +937,8 @@ pmake=''
 pr=''
 prefix='/usr'
 prefixexp='/usr'
-privlib='/usr/lib/perl5/5.21.8'
-privlibexp='/usr/lib/perl5/5.21.8'
+privlib='/usr/lib/perl5/5.21.9'
+privlibexp='/usr/lib/perl5/5.21.9'
 procselfexe='"/proc/self/exe"'
 prototype='define'
 ptrsize='4'
@@ -999,17 +1003,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
 sig_size='68'
 signal_t='void'
-sitearch='/usr/lib/perl5/site_perl/5.21.8/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.21.8/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.21.9/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.21.9/armv4l-linux'
 sitebin='/usr/bin'
 sitebinexp='/usr/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.21.8'
+sitelib='/usr/lib/perl5/site_perl/5.21.9'
 sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.21.8'
+sitelibexp='/usr/lib/perl5/site_perl/5.21.9'
 siteman1dir='/usr/share/man/man1'
 siteman1direxp='/usr/share/man/man1'
 siteman3dir='/usr/share/man/man3'
@@ -1048,7 +1052,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/usr/include/string.h'
 submit=''
-subversion='8'
+subversion='9'
 sysman='/usr/share/man/man1'
 tail=''
 tar=''
@@ -1140,8 +1144,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.21.8'
-version_patchlevel_string='version 21 subversion 8'
+version='5.21.9'
+version_patchlevel_string='version 21 subversion 9'
 versiononly='undef'
 vi=''
 xlibpth='/usr/lib/386 /lib/386'
@@ -1155,9 +1159,9 @@ config_args=''
 config_argc=0
 PERL_REVISION=5
 PERL_VERSION=21
-PERL_SUBVERSION=8
+PERL_SUBVERSION=9
 PERL_API_REVISION=5
 PERL_API_VERSION=21
-PERL_API_SUBVERSION=8
+PERL_API_SUBVERSION=9
 PERL_PATCHLEVEL=
 PERL_CONFIG_SH=true
index 2277b2a..fbcb8e0 100644 (file)
@@ -32,12 +32,12 @@ alignbytes='4'
 ansi2knr=''
 aphostname='/bin/hostname'
 api_revision='5'
-api_subversion='8'
+api_subversion='9'
 api_version='21'
-api_versionstring='5.21.8'
+api_versionstring='5.21.9'
 ar='ar'
-archlib='/usr/lib/perl5/5.21.8/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.21.8/armv4l-linux'
+archlib='/usr/lib/perl5/5.21.9/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.21.9/armv4l-linux'
 archname64=''
 archname='armv4l-linux'
 archobjs=''
@@ -55,7 +55,7 @@ castflags='0'
 cat='cat'
 cc='arm-none-linux-gnueabi-gcc'
 cccdlflags='-fpic'
-ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.21.8/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.21.9/armv4l-linux/CORE'
 ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccname='arm-linux-gcc'
@@ -699,7 +699,7 @@ inc_version_list=' '
 inc_version_list_init='0'
 incpath=''
 inews=''
-installarchlib='./install_me_here/usr/lib/perl5/5.21.8/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.21.9/armv4l-linux'
 installbin='./install_me_here/usr/bin'
 installhtml1dir=''
 installhtml3dir=''
@@ -707,13 +707,13 @@ installman1dir='./install_me_here/usr/share/man/man1'
 installman3dir='./install_me_here/usr/share/man/man3'
 installprefix='./install_me_here/usr'
 installprefixexp='./install_me_here/usr'
-installprivlib='./install_me_here/usr/lib/perl5/5.21.8'
+installprivlib='./install_me_here/usr/lib/perl5/5.21.9'
 installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.21.8/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.21.9/armv4l-linux'
 installsitebin='./install_me_here/usr/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.21.8'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.21.9'
 installsiteman1dir='./install_me_here/usr/share/man/man1'
 installsiteman3dir='./install_me_here/usr/share/man/man3'
 installsitescript='./install_me_here/usr/bin'
@@ -841,8 +841,8 @@ pmake=''
 pr=''
 prefix='/usr'
 prefixexp='/usr'
-privlib='/usr/lib/perl5/5.21.8'
-privlibexp='/usr/lib/perl5/5.21.8'
+privlib='/usr/lib/perl5/5.21.9'
+privlibexp='/usr/lib/perl5/5.21.9'
 procselfexe='"/proc/self/exe"'
 prototype='define'
 ptrsize='4'
@@ -903,17 +903,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
 sig_size='68'
 signal_t='void'
-sitearch='/usr/lib/perl5/site_perl/5.21.8/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.21.8/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.21.9/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.21.9/armv4l-linux'
 sitebin='/usr/bin'
 sitebinexp='/usr/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.21.8'
+sitelib='/usr/lib/perl5/site_perl/5.21.9'
 sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.21.8'
+sitelibexp='/usr/lib/perl5/site_perl/5.21.9'
 siteman1dir='/usr/share/man/man1'
 siteman1direxp='/usr/share/man/man1'
 siteman3dir='/usr/share/man/man3'
@@ -950,7 +950,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/usr/include/string.h'
 submit=''
-subversion='8'
+subversion='9'
 sysman='/usr/share/man/man1'
 tail=''
 tar=''
@@ -1035,8 +1035,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.21.8'
-version_patchlevel_string='version 21 subversion 8'
+version='5.21.9'
+version_patchlevel_string='version 21 subversion 9'
 versiononly='undef'
 vi=''
 xlibpth='/usr/lib/386 /lib/386'
@@ -1050,9 +1050,9 @@ config_args=''
 config_argc=0
 PERL_REVISION=5
 PERL_VERSION=21
-PERL_SUBVERSION=8
+PERL_SUBVERSION=9
 PERL_API_REVISION=5
 PERL_API_VERSION=21
-PERL_API_SUBVERSION=8
+PERL_API_SUBVERSION=9
 PERL_PATCHLEVEL=
 PERL_CONFIG_SH=true
diff --git a/INSTALL b/INSTALL
index 018a4be..09546c9 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -89,7 +89,7 @@ potential incompatibilities introduced with this release.  A few of
 the most important issues are listed below, but you should refer
 to pod/perldelta.pod for more detailed information.
 
-B<WARNING:> This version is not binary compatible with prior releases of Perl.
+B<WARNING:> This version is not binary compatible with earlier versions of Perl.
 If you have built extensions (i.e. modules that include C code)
 using an earlier version of Perl, you will need to rebuild and reinstall
 those extensions.
@@ -583,7 +583,7 @@ The directories set up by Configure fall into three broad categories.
 
 =item Directories for the perl distribution
 
-By default, Configure will use the following directories for 5.21.8.
+By default, Configure will use the following directories for 5.21.9.
 $version is the full perl version number, including subversion, e.g.
 5.12.3, and $archname is a string like sun4-sunos,
 determined by Configure.  The full definitions of all Configure
@@ -2217,7 +2217,6 @@ make install will install the following:
        perl,
            perl5.n.n   where 5.n.n is the current release number.  This
                        will be a link to perl.
-       a2p             awk-to-perl translator.
 
     scripts
 
@@ -2230,7 +2229,6 @@ make install will install the following:
                        versions of perl.
        cpan            The CPAN shell.
        enc2xs          Encoding module generator.
-       find2perl       find-to-perl translator.
        h2ph            Extract constants and simple macros from C
                         headers.
        h2xs            Converts C .h header files to Perl extensions.
@@ -2253,7 +2251,6 @@ make install will install the following:
        ptar            A Perl implementation of tar.
        ptardiff        A diff for tar archives.
        ptargrep        A grep for tar archives.
-       s2p             sed-to-perl translator.
        shasum          A tool to print or check SHA checksums.
        splain          Describe Perl warnings and errors.
        xsubpp          Compiler to convert Perl XS code into C code.
@@ -2435,7 +2432,7 @@ http://www.chiark.greenend.org.uk/~sgtatham/bugs.html
 
 =head1 Coexistence with earlier versions of perl 5
 
-Perl 5.21.8 is not binary compatible with earlier versions of Perl.
+Perl 5.21.9 is not binary compatible with earlier versions of Perl.
 In other words, you will have to recompile your XS modules.
 
 In general, you can usually safely upgrade from one version of Perl (e.g.
@@ -2509,9 +2506,9 @@ won't interfere with another version.  (The defaults guarantee this for
 libraries after 5.6.0, but not for executables. TODO?)  One convenient
 way to do this is by using a separate prefix for each version, such as
 
-       sh Configure -Dprefix=/opt/perl5.21.8
+       sh Configure -Dprefix=/opt/perl5.21.9
 
-and adding /opt/perl5.21.8/bin to the shell PATH variable.  Such users
+and adding /opt/perl5.21.9/bin to the shell PATH variable.  Such users
 may also wish to add a symbolic link /usr/local/bin/perl so that
 scripts can still start with #!/usr/local/bin/perl.
 
@@ -2524,13 +2521,13 @@ seriously consider using a separate directory, since development
 subversions may not have all the compatibility wrinkles ironed out
 yet.
 
-=head2 Upgrading from 5.21.7 or earlier
+=head2 Upgrading from 5.21.8 or earlier
 
-B<Perl 5.21.8 may not be binary compatible with Perl 5.21.7 or
+B<Perl 5.21.9 may not be binary compatible with Perl 5.21.8 or
 earlier Perl releases.>  Perl modules having binary parts
 (meaning that a C compiler is used) will have to be recompiled to be
-used with 5.21.8.  If you find you do need to rebuild an extension with
-5.21.8, you may safely do so without disturbing the older
+used with 5.21.9.  If you find you do need to rebuild an extension with
+5.21.9, you may safely do so without disturbing the older
 installations.  (See L<"Coexistence with earlier versions of perl 5">
 above.)
 
@@ -2563,15 +2560,15 @@ Firstly, the bare minimum to run this script
      print("$f\n");
   }
 
-in Linux with perl-5.21.8 is as follows (under $Config{prefix}):
+in Linux with perl-5.21.9 is as follows (under $Config{prefix}):
 
   ./bin/perl
-  ./lib/perl5/5.21.8/strict.pm
-  ./lib/perl5/5.21.8/warnings.pm
-  ./lib/perl5/5.21.8/i686-linux/File/Glob.pm
-  ./lib/perl5/5.21.8/feature.pm
-  ./lib/perl5/5.21.8/XSLoader.pm
-  ./lib/perl5/5.21.8/i686-linux/auto/File/Glob/Glob.so
+  ./lib/perl5/5.21.9/strict.pm
+  ./lib/perl5/5.21.9/warnings.pm
+  ./lib/perl5/5.21.9/i686-linux/File/Glob.pm
+  ./lib/perl5/5.21.9/feature.pm
+  ./lib/perl5/5.21.9/XSLoader.pm
+  ./lib/perl5/5.21.9/i686-linux/auto/File/Glob/Glob.so
 
 Secondly, for perl-5.10.1, the Debian perl-base package contains 591 files,
 (of which 510 are for lib/unicore) totaling about 3.5MB in its i386 version.
index 22a0d20..4295f27 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -784,6 +784,7 @@ cpan/Digest/t/file.t                See if Digest extensions work
 cpan/Digest/t/lib/Digest/Dummy.pm              See if Digest extensions work
 cpan/Digest/t/security.t               See if Digest extensions work
 cpan/Encode/bin/enc2xs         Encode module generator
+cpan/Encode/bin/encguess               guess character encodings of files
 cpan/Encode/bin/piconv         iconv by perl
 cpan/Encode/bin/ucm2table      Table Generator for testing
 cpan/Encode/bin/ucmlint                A UCM Lint utility
@@ -2343,6 +2344,7 @@ cpan/Test-Simple/lib/Test/Stream/Event.pm                 Test::Simple module
 cpan/Test-Simple/lib/Test/Stream/Event/Subtest.pm                      Test::Simple module
 cpan/Test-Simple/lib/Test/Stream/ExitMagic/Context.pm                  Test::Simple module
 cpan/Test-Simple/lib/Test/Stream/ExitMagic.pm                  Test::Simple module
+cpan/Test-Simple/lib/Test/Stream/Explanation.pod                       Test::Simple POD
 cpan/Test-Simple/lib/Test/Stream/Exporter/Meta.pm                      Test::Simple module
 cpan/Test-Simple/lib/Test/Stream/Exporter.pm                   Test::Simple module
 cpan/Test-Simple/lib/Test/Stream/ForceExit.pm                  Test-Simple module
@@ -2372,9 +2374,11 @@ cpan/Test-Simple/t/Behavior/388-threadedsubtest.load                     Test::Simple Test
 cpan/Test-Simple/t/Behavior/388-threadedsubtest.t                      Test::Simple test
 cpan/Test-Simple/t/Behavior/478-cmp_ok_hash.t                  Test::Simple test
 cpan/Test-Simple/t/Behavior/490-inherit_exporter.t                     Test::Simple test
+cpan/Test-Simple/t/Behavior/cmp_ok_undef.t                     Test::Simple Test
 cpan/Test-Simple/t/Behavior/cmp_ok_xor.t                       Test::Simple Test
 cpan/Test-Simple/t/Behavior/CustomOutput.t                     Test::Simple Test
 cpan/Test-Simple/t/Behavior/encoding_test.t                    Test::Simple Test
+cpan/Test-Simple/t/Behavior/event_clone_args.t                 Test::Simple Test
 cpan/Test-Simple/t/Behavior/fork_new_end.t                     Test::Simple Test
 cpan/Test-Simple/t/Behavior/MonkeyPatching_diag.t                      Test::Simple Test
 cpan/Test-Simple/t/Behavior/MonkeyPatching_done_testing.t                      Test::Simple Test
@@ -2463,7 +2467,6 @@ cpan/Test-Simple/t/Legacy/plan_skip_all.t                 Test::Simple Test
 cpan/Test-Simple/t/Legacy/plan.t                       Test::Simple Test
 cpan/Test-Simple/t/Legacy/pod.t                        Test::Simple Test
 cpan/Test-Simple/t/Legacy/require_ok.t                 Test::Simple Test
-cpan/Test-Simple/t/Legacy/ribasushi_diag.t                     Test::Simple Test
 cpan/Test-Simple/t/Legacy/ribasushi_threads2.t                 Test::Simple Test
 cpan/Test-Simple/t/Legacy/ribasushi_threads.t                  Test::Simple Test
 cpan/Test-Simple/t/Legacy/Simple/load.t                        Test::Simple Test
@@ -4378,7 +4381,9 @@ lib/Unicode/UCD.t         See if Unicode character database works
 lib/unicore/ArabicShaping.txt                  Unicode character database
 lib/unicore/auxiliary/GCBTest.txt      Unicode character database
 lib/unicore/auxiliary/GraphemeBreakProperty.txt        Unicode character database
+lib/unicore/auxiliary/SBTest.txt       Unicode character database
 lib/unicore/auxiliary/SentenceBreakProperty.txt        Unicode character database
+lib/unicore/auxiliary/WBTest.txt       Unicode character database
 lib/unicore/auxiliary/WordBreakProperty.txt    Unicode character database
 lib/unicore/BidiBrackets.txt                   Unicode character database
 lib/unicore/BidiMirroring.txt                  Unicode character database
@@ -4654,6 +4659,7 @@ pod/perl5182delta.pod             Perl changes in version 5.18.2
 pod/perl5184delta.pod          Perl changes in version 5.18.4
 pod/perl5200delta.pod          Perl changes in version 5.20.0
 pod/perl5201delta.pod          Perl changes in version 5.20.1
+pod/perl5202delta.pod          Perl changes in version 5.20.2
 pod/perl5210delta.pod          Perl changes in version 5.21.0
 pod/perl5211delta.pod          Perl changes in version 5.21.1
 pod/perl5212delta.pod          Perl changes in version 5.21.2
@@ -4662,6 +4668,7 @@ pod/perl5214delta.pod             Perl changes in version 5.21.4
 pod/perl5215delta.pod          Perl changes in version 5.21.5
 pod/perl5216delta.pod          Perl changes in version 5.21.6
 pod/perl5217delta.pod          Perl changes in version 5.21.7
+pod/perl5218delta.pod          Perl changes in version 5.21.8
 pod/perl561delta.pod           Perl changes in version 5.6.1
 pod/perl56delta.pod            Perl changes in version 5.6
 pod/perl581delta.pod           Perl changes in version 5.8.1
@@ -5275,6 +5282,7 @@ t/op/die.t                        See if die works
 t/op/die_unwind.t              Check die/eval early-$@ backcompat hack
 t/op/dor.t                     See if defined-or (//) works
 t/op/do.t                      See if subroutines work
+t/op/dump.t                    See if dump works.
 t/op/each_array.t              See if array iterators work
 t/op/each.t                    See if hash iterators work
 t/op/evalbytes.t               See if evalbytes operator works
@@ -5622,6 +5630,7 @@ utils/c2ph.PL                     program to translate dbx stabs to perl
 utils/corelist.PL              Module::CoreList
 utils/cpan.PL                  easily interact with CPAN from the command line
 utils/enc2xs.PL                        Encode module generator
+utils/encguess.PL                      guess character encodings of files
 utils/h2ph.PL                  A thing to turn C .h files into perl .ph files
 utils/h2xs.PL                  Program to make .xs files from C header files
 utils/instmodsh.PL             Give information about installed extensions
index ef2e4c3..a225afc 100644 (file)
--- a/META.json
+++ b/META.json
          "url" : "http://perl5.git.perl.org/"
       }
    },
-   "version" : "5.021008"
+   "version" : "5.021009"
 }
index f921d8d..deec239 100644 (file)
--- a/META.yml
+++ b/META.yml
@@ -111,4 +111,4 @@ resources:
   homepage: http://www.perl.org/
   license: http://dev.perl.org/licenses/
   repository: http://perl5.git.perl.org/
-version: '5.021008'
+version: '5.021009'
index 42770b7..e179ddd 100755 (executable)
@@ -492,7 +492,7 @@ mini_obj = $(minindt_obj) $(MINIDTRACE_O)
 ndt_obj = $(obj0) $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
 obj = $(ndt_obj) $(DTRACE_O)
 
-perltoc_pod_prereqs = extra.pods pod/perl5218delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
+perltoc_pod_prereqs = extra.pods pod/perl5219delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
 generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs)
 generated_headers = uudmap.h bitcount.h mg_data.h
 
@@ -570,9 +570,9 @@ all: $(FIRSTMAKEFILE) $(MINIPERL_EXE) $(generated_pods) $(private) $(unidatafile
        @echo " ";
        @echo " Everything is up to date. Type '$(MAKE) test' to run test suite."
 
-$(MANIFEST_SRT):       MANIFEST
-       @perl Porting/manisort -q || (echo "WARNING: re-sorting MANIFEST"; \
-               perl Porting/manisort -q -o MANIFEST; sh -c true)
+$(MANIFEST_SRT):       MANIFEST $(PERL_EXE)
+       @$(RUN_PERL) Porting/manisort -q || (echo "WARNING: re-sorting MANIFEST"; \
+           $(RUN_PERL) Porting/manisort -q -o MANIFEST; sh -c true)
        @touch $(MANIFEST_SRT)
 
 .PHONY: all utilities
@@ -1020,9 +1020,9 @@ pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.fnc
 pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST
        $(MINIPERL) pod/perlmodlib.PL -q
 
-pod/perl5218delta.pod: pod/perldelta.pod
-       $(RMS) pod/perl5218delta.pod
-       $(LNS) perldelta.pod pod/perl5218delta.pod
+pod/perl5219delta.pod: pod/perldelta.pod
+       $(RMS) pod/perl5219delta.pod
+       $(LNS) perldelta.pod pod/perl5219delta.pod
 
 extra.pods: $(MINIPERL_EXE)
        -@test ! -f extra.pods || rm -f `cat extra.pods`
index 4c58973..04ad692 100644 (file)
@@ -86,7 +86,7 @@ NLM_VERSION    = 3,20,0
 
 
 # Here comes the CW tools - TO BE FILLED TO BUILD WITH CW -
-MODULE_DESC     = "Perl 5.21.8 for NetWare"
+MODULE_DESC     = "Perl 5.21.9 for NetWare"
 CCTYPE          = CodeWarrior
 C_COMPILER             = mwccnlm -c
 CPP_COMPILER   = mwccnlm
@@ -462,7 +462,7 @@ INST_NW_TOP2 = $(INST_NW_DRV)\perl
 # versioned installation can be obtained by setting INST_TOP above to a
 # path that includes an arbitrary version string.
 #
-INST_VER       = \5.21.8
+INST_VER       = \5.21.9
 
 #
 # Comment this out if you DON'T want your perl installation to have
@@ -653,7 +653,6 @@ PERLIMPLIB  = ..\perl.lib
 MINIPERL       = ..\miniperl.exe
 CONFIGPM       = ..\lib\Config.pm
 MINIMOD                = ..\lib\ExtUtils\Miniperl.pm
-X2P                    = ..\x2p\a2p.nlm
 
 PL2BAT         = ..\win32\bin\pl2bat.pl
 
@@ -670,9 +669,7 @@ UTILS               =                       \
                ..\pod\pod2text         \
                ..\pod\pod2usage        \
                ..\pod\podchecker       \
-               ..\pod\podselect        \
-               ..\x2p\find2perl        \
-               ..\x2p\s2p              
+               ..\pod\podselect
 
 MAKE           = nmake -nologo
 #NMAKE       = $(C_COMPILER) $(INCLUDE) $(NLM_INCLUDES) $(COMPLER_FLAGS) $(ADD_LOCDEFS) $(ERROR_FLAG) $(*F).c -o $@
@@ -738,13 +735,6 @@ NW_SRC     = $(NW_SRC) .\$(CRYPT_SRC)
 
 DLL_SRC                = $(DYNALOADER).c
 
-X2P_SRC                =               \
-               ..\x2p\a2p.c    \
-               ..\x2p\hash.c   \
-               ..\x2p\str.c    \
-               ..\x2p\util.c   \
-               ..\x2p\walk.c
-
 CORE_NOCFG_H   =               \
                ..\av.h         \
                ..\cop.h        \
@@ -783,7 +773,6 @@ CORE_NOCFG_H        =               \
 CORE_H         = $(CORE_NOCFG_H) .\config.h
 
 DLL_OBJ                = $(DLL_SRC:.c=.obj)
-X2P_OBJ                = $(X2P_SRC:.c=.obj)
 
 DYNAMIC_EXT    = Socket IO Fcntl Opcode SDBM_File POSIX attributes B re \
                Data/Dumper Devel/Peek ByteLoader File/Glob \
@@ -891,47 +880,6 @@ $(MINIPERL) :
 $(MINIMOD) : $(MINIPERL) ..\minimod.pl
        cd .. && miniperl minimod.pl > lib\ExtUtils\Miniperl.pm
 
-..\x2p\a2p$(o) : ..\x2p\a2p.c
-       @echo $(MPKMESSAGE)...$(BLDMESG)...$@
-       $(C_COMPILER) $(COMPLER_FLAGS) $(NLM_INCLUDES) -I..\x2p $(ADD_LOCDEFS) $(ERROR_FLAG) $*.c -o $@
-    @echo Built $(@)
-
-..\x2p\hash$(o) : ..\x2p\hash.c
-       @echo $(MPKMESSAGE)...$(BLDMESG)...$@
-       $(C_COMPILER) $(COMPLER_FLAGS) $(NLM_INCLUDES) -I..\x2p $(ADD_LOCDEFS) $(ERROR_FLAG) $*.c -o $@
-    @echo Built $(@)
-       
-..\x2p\str$(o) : ..\x2p\str.c
-       @echo $(MPKMESSAGE)...$(BLDMESG)...$@
-       $(C_COMPILER) $(COMPLER_FLAGS) $(NLM_INCLUDES) -I..\x2p $(ADD_LOCDEFS) $(ERROR_FLAG) $*.c -o $@
-    @echo Built $(@)
-
-..\x2p\util$(o) : ..\x2p\util.c
-       @echo $(MPKMESSAGE)...$(BLDMESG)...$@
-       $(C_COMPILER) $(COMPLER_FLAGS) $(NLM_INCLUDES) -I..\x2p $(ADD_LOCDEFS) $(ERROR_FLAG) $*.c -o $@
-    @echo Built $(@)
-
-..\x2p\walk$(o) : ..\x2p\walk.c
-       @echo $(MPKMESSAGE)...$(BLDMESG)...$@
-       $(C_COMPILER) $(COMPLER_FLAGS) $(NLM_INCLUDES) -I..\x2p $(ADD_LOCDEFS) $(ERROR_FLAG) $*.c -o $@
-    @echo Built $(@)
-       
-$(X2P) : $(MINIPERL) $(X2P_OBJ)
-       @echo Building $@..........
-       $(MINIPERL) ..\x2p\find2perl.PL
-       $(MINIPERL) ..\x2p\s2p.PL
-# Linker definitions and lining come here for CODEWARRIOR
-    @echo $(BASE_IMPORT_FILES) > $*.def
-    @echo MODULE clib >> $*.def
-    @echo Import @perl.imp >> $*.def
-!ifdef USE_XDC
-       $(MPKTOOL) $(XDCFLAGS) $*.xdc
-       @echo Import Mp.imp >> $*.def
-       @echo xdcdata $*.xdc >> $*.def
-!endif
-##    $(LINK) $(LDFLAGS) $(BS_CFLAGS) -desc "Awk to Perl Translator" $(X2P_OBJ) $(BLDDIR)\clibstuf.obj -commandfile $*.def -o $@ 
-    $(LINK) $(LDFLAGS) -desc "Awk to Perl Translator" $(X2P_OBJ) $(BLDDIR)\clibstuf.obj -commandfile $*.def -o $@ 
-
 $(EXTDIR)\DynaLoader\dl_netware.xs: dl_netware.xs
        copy dl_netware.xs $(EXTDIR)\DynaLoader\dl_netware.xs
 
@@ -1357,7 +1305,7 @@ nwclean:
        -del /f /q *.obj *.map *.link *.options *.nlm *.sym *.xdc *.err *.lib *.def *.pdb *.bs
        cd ..\..\
 
-utils: $(BLDDIR)\$(NLM_NAME8).$(NLM_EXT) $(X2P)
+utils: $(BLDDIR)\$(NLM_NAME8).$(NLM_EXT)
        cd ..\utils
        $(MAKE) PERL=$(MINIPERL)
        cd ..\pod
@@ -1402,11 +1350,6 @@ distclean: clean nwclean
        -del /f /q h2ph splain perlbug pl2pm c2ph h2xs perldoc
        -del /f /q *.bat
        cd ..\netware
-       cd ..\x2p
-       -del /f /q find2perl s2p
-       -del /f /q *.bat *.exe
-       -del /f /q *.obj *.map *.link *.xdc *.err
-       cd ..\netware
        -del /f /q ..\config.sh ..\splittree.pl dlutils.c config.h.new
        -del /f /q $(CONFIGPM)
        -del /f /q bin\*.bat
@@ -1463,4 +1406,3 @@ clean :
        -@erase $(DLL_OBJ)
        -@erase ..\*$(o) ..\*.lib ..\*.exp *$(o) *.lib *.exp *.res
        -@erase ..\t\*.exe ..\t\*.dll ..\t\*.bat
-       -@erase ..\x2p\*.nlm ..\x2p\*.bat
index 1ef2bc2..68df99e 100644 (file)
@@ -321,7 +321,9 @@ d_lgamma_r='undef'
 d_libm_lib_version='undef'
 d_link='define'
 d_llrint='undef'
+d_llrintl='undef'
 d_llround='undef'
+d_llroundl='undef'
 d_localtime64='undef'
 d_localtime_r='undef'
 d_localtime_r_needs_tzset='undef'
@@ -333,7 +335,9 @@ d_logb='undef'
 d_longdbl='define'
 d_longlong='undef'
 d_lrint='undef'
+d_lrintl='undef'
 d_lround='undef'
+d_lroundl='undef'
 d_lseekproto='define'
 d_lstat='undef'
 d_madvise='undef'
index 646fada..5fe0168 100644 (file)
  *     This symbol contains the ~name expanded version of ARCHLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define ARCHLIB "c:\\perl\\5.21.8\\lib\\NetWare-x86-multi-thread"              /**/
+#define ARCHLIB "c:\\perl\\5.21.9\\lib\\NetWare-x86-multi-thread"              /**/
 /*#define ARCHLIB_EXP ""       /**/
 
 /* ARCHNAME:
  *     This symbol is the filename expanded version of the BIN symbol, for
  *     programs that do not want to deal with that at run-time.
  */
-#define BIN "c:\\perl\\5.21.8\\bin\\NetWare-x86-multi-thread"  /**/
-#define BIN_EXP "c:\\perl\\5.21.8\\bin\\NetWare-x86-multi-thread"      /**/
+#define BIN "c:\\perl\\5.21.9\\bin\\NetWare-x86-multi-thread"  /**/
+#define BIN_EXP "c:\\perl\\5.21.9\\bin\\NetWare-x86-multi-thread"      /**/
 
 /* BYTEORDER:
  *     This symbol holds the hexadecimal constant defined in byteorder,
  *     This symbol contains the ~name expanded version of SITEARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SITEARCH "c:\\perl\\site\\5.21.8\\lib\\NetWare-x86-multi-thread"               /**/
+#define SITEARCH "c:\\perl\\site\\5.21.9\\lib\\NetWare-x86-multi-thread"               /**/
 /*#define SITEARCH_EXP ""      /**/
 
 /* SITELIB:
  *     removed.  The elements in inc_version_list (inc_version_list.U) can
  *     be tacked onto this variable to generate a list of directories to search.
  */
-#define SITELIB "c:\\perl\\site\\5.21.8\\lib"          /**/
+#define SITELIB "c:\\perl\\site\\5.21.9\\lib"          /**/
 /*#define SITELIB_EXP ""       /**/
 #define SITELIB_STEM ""                /**/
 
index a3b257b..75f67e3 100644 (file)
@@ -1475,11 +1475,22 @@ d_llrint (d_llrint.U):
        to return the long long value closest to (according to the current
        rounding mode) to x.
 
+d_llrintl (d_llrintl.U):
+       This variable conditionally defines the HAS_LLRINTL symbol, which
+       indicates to the C program that the llrintl() routine is available
+       to return the long long value closest to (according to the current
+       rounding mode) to long double x.
+
 d_llround (d_llround.U):
        This variable conditionally defines the HAS_LLROUND symbol, which
        indicates to the C program that the llround() routine is available
        to return the long long value nearest to x.
 
+d_llroundl (d_llroundl.U):
+       This variable conditionally defines the HAS_LLROUNDL symbol, which
+       indicates to the C program that the llroundl() routine is available
+       to return the long long value nearest to long double x.
+
 d_localtime64 (d_timefuncs64.U):
        This variable conditionally defines the HAS_LOCALTIME64 symbol, which
        indicates to the C program that the localtime64 () routine is available.
@@ -1530,11 +1541,22 @@ d_lrint (d_lrint.U):
        to return the integral value closest to (according to the current
        rounding mode) to x.
 
+d_lrintl (d_lrintl.U):
+       This variable conditionally defines the HAS_LRINTL symbol, which
+       indicates to the C program that the lrintl() routine is available
+       to return the integral value closest to (according to the current
+       rounding mode) to long double x.
+
 d_lround (d_lround.U):
        This variable conditionally defines the HAS_LROUND symbol, which
        indicates to the C program that the lround() routine is available
        to return the integral value nearest to x.
 
+d_lroundl (d_lroundl.U):
+       This variable conditionally defines the HAS_LROUNDL symbol, which
+       indicates to the C program that the lroundl() routine is available
+       to return the integral value nearest to x of the long double argument.
+
 d_lseekproto (d_lseekproto.U):
        This variable conditionally defines the HAS_LSEEK_PROTO symbol,
        which indicates to the C program that the system provides
index 1da1db4..078a4d3 100755 (executable)
@@ -171,7 +171,7 @@ use File::Glob qw(:case);
     },
 
     'B::Debug' => {
-        'DISTRIBUTION' => 'RURBAN/B-Debug-1.22.tar.gz',
+        'DISTRIBUTION' => 'RURBAN/B-Debug-1.23.tar.gz',
         'FILES'        => q[cpan/B-Debug],
         'EXCLUDED'     => ['t/pod.t'],
     },
@@ -220,7 +220,7 @@ use File::Glob qw(:case);
     },
 
     'Config::Perl::V' => {
-        'DISTRIBUTION' => 'HMBRAND/Config-Perl-V-0.22.tgz',
+        'DISTRIBUTION' => 'HMBRAND/Config-Perl-V-0.23.tgz',
         'FILES'        => q[cpan/Config-Perl-V],
         'EXCLUDED'     => [qw(
                examples/show-v.pl
@@ -277,6 +277,18 @@ use File::Glob qw(:case);
                 t/yaml_code.yml
                 ),
         ],
+        # Waiting to be merged upstream: see pull request #83
+        'CUSTOMIZED'   => [
+            qw( lib/CPAN/Author.pm
+                lib/CPAN/CacheMgr.pm
+                lib/CPAN/FTP.pm
+                lib/CPAN/HTTP/Client.pm
+                lib/CPAN/HandleConfig.pm
+                lib/CPAN/Index.pm
+                lib/CPAN/LWP/UserAgent.pm
+                lib/CPAN/Mirrors.pm
+                ),
+        ],
     },
 
     # Note: When updating CPAN-Meta the META.* files will need to be regenerated
@@ -294,7 +306,7 @@ use File::Glob qw(:case);
     },
 
     'CPAN::Meta::Requirements' => {
-        'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-Requirements-2.131.tar.gz',
+        'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-Requirements-2.132.tar.gz',
         'FILES'        => q[cpan/CPAN-Meta-Requirements],
         'EXCLUDED'     => [
             qw(CONTRIBUTING.mkdn),
@@ -380,11 +392,13 @@ use File::Glob qw(:case);
     },
 
     'Encode' => {
-        'DISTRIBUTION' => 'DANKOGAI/Encode-2.67.tar.gz',
+        'DISTRIBUTION' => 'DANKOGAI/Encode-2.70.tar.gz',
         'FILES'        => q[cpan/Encode],
-        # Waiting to be merged upstream if it smokes ok: see CPAN RT#100347,
-        # in particular see khw's comments on that ticket on 21 Nov 2014.
-        'CUSTOMIZED'   => [ qw( encoding.pm ) ],
+        'CUSTOMIZED'   => [
+            # Waiting to be merged upstream if it smokes ok: see CPAN RT#100347,
+            # in particular see khw's comments on that ticket on 21 Nov 2014.
+            qw( encoding.pm ),
+        ],
     },
 
     'encoding::warnings' => {
@@ -583,7 +597,7 @@ use File::Glob qw(:case);
     },
 
     'HTTP::Tiny' => {
-        'DISTRIBUTION' => 'DAGOLDEN/HTTP-Tiny-0.053.tar.gz',
+        'DISTRIBUTION' => 'DAGOLDEN/HTTP-Tiny-0.054.tar.gz',
         'FILES'        => q[cpan/HTTP-Tiny],
         'EXCLUDED'     => [
             't/00-report-prereqs.t',
@@ -792,7 +806,7 @@ use File::Glob qw(:case);
     },
 
     'Module::CoreList' => {
-        'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20141220.tar.gz',
+        'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20150214.tar.gz',
         'FILES'        => q[dist/Module-CoreList],
     },
 
@@ -862,13 +876,13 @@ use File::Glob qw(:case);
     },
 
     'Perl::OSType' => {
-        'DISTRIBUTION' => 'DAGOLDEN/Perl-OSType-1.007.tar.gz',
+        'DISTRIBUTION' => 'DAGOLDEN/Perl-OSType-1.008.tar.gz',
         'FILES'        => q[cpan/Perl-OSType],
         'EXCLUDED'     => [qw(tidyall.ini), qr/^xt/, qr{^t/00-}],
     },
 
     'perlfaq' => {
-        'DISTRIBUTION' => 'ETHER/perlfaq-5.0150046.tar.gz',
+        'DISTRIBUTION' => 'ETHER/perlfaq-5.021009.tar.gz',
         'FILES'        => q[cpan/perlfaq],
         'EXCLUDED'     => [
             qw( inc/CreateQuestionList.pm
@@ -900,12 +914,12 @@ use File::Glob qw(:case);
     },
 
     'Pod::Parser' => {
-        'DISTRIBUTION' => 'MAREKR/Pod-Parser-1.62.tar.gz',
+        'DISTRIBUTION' => 'MAREKR/Pod-Parser-1.63.tar.gz',
         'FILES'        => q[cpan/Pod-Parser],
     },
 
     'Pod::Perldoc' => {
-        'DISTRIBUTION' => 'MALLEN/Pod-Perldoc-3.24.tar.gz',
+        'DISTRIBUTION' => 'MALLEN/Pod-Perldoc-3.25.tar.gz',
         'FILES'        => q[cpan/Pod-Perldoc],
 
         # Note that we use the CPAN-provided Makefile.PL, since it
@@ -973,7 +987,7 @@ use File::Glob qw(:case);
     },
 
     'Socket' => {
-        'DISTRIBUTION' => 'PEVANS/Socket-2.016.tar.gz',
+        'DISTRIBUTION' => 'PEVANS/Socket-2.018.tar.gz',
         'FILES'        => q[cpan/Socket],
     },
 
@@ -1053,7 +1067,7 @@ use File::Glob qw(:case);
     },
 
     'Test::Simple' => {
-        'DISTRIBUTION' => 'EXODIST/Test-Simple-1.301001_073.tar.gz',
+        'DISTRIBUTION' => 'EXODIST/Test-Simple-1.301001_098.tar.gz',
         'FILES'        => q[cpan/Test-Simple],
         'EXCLUDED'     => [
             qr{^t/xt},
@@ -1065,6 +1079,9 @@ use File::Glob qw(:case);
                 examples/subtest.t
                 t/Legacy/00compile.t
                 t/Legacy/pod.t
+                t/xxx-changes_updated.t
+                t/zzz-check-breaks.t
+                t/Legacy/ribasushi_diag.t
                 ),
         ],
        'CUSTOMIZED'   => [
@@ -1222,7 +1239,7 @@ use File::Glob qw(:case);
     },
 
     'Unicode::Collate' => {
-        'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-1.10.tar.gz',
+        'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-1.11.tar.gz',
         'FILES'        => q[cpan/Unicode-Collate],
         'EXCLUDED'     => [
             qr{N$},
@@ -1280,16 +1297,15 @@ use File::Glob qw(:case);
     },
 
     'Win32' => {
-        'DISTRIBUTION' => "JDB/Win32-0.49.tar.gz",
+        'DISTRIBUTION' => "JDB/Win32-0.51.tar.gz",
         'FILES'        => q[cpan/Win32],
     },
 
     'Win32API::File' => {
-        'DISTRIBUTION' => 'CHORNY/Win32API-File-0.1201.tar.gz',
+        'DISTRIBUTION' => 'CHORNY/Win32API-File-0.1202.tar.gz',
         'FILES'        => q[cpan/Win32API-File],
         'EXCLUDED'     => [
             qr{^ex/},
-            't/pod.t',
         ],
     },
 
index dc90a8f..62c7aa0 100755 (executable)
@@ -149,7 +149,7 @@ high counts will dominate.
 
 =item *
 
---sort=I<perl:field>
+--sort=I<field:perl>
 
 Order the tests in the output based on the value of I<field> in the
 column I<perl>. The I<perl> value is as per C<--norm>. For example
@@ -238,7 +238,7 @@ usage: $0 [options] perl[=label] ...
                        [default: 0].
   --perlargs=foo     Optional command-line args to pass to each perl to run.
   --raw              Display raw data counts rather than percentages.
-  --sort=perl:field  Sort the tests based on the value of 'field' in the
+  --sort=field:perl  Sort the tests based on the value of 'field' in the
                        column 'perl'. The perl value is as per --norm.
   -r|--read=file     Read in previously saved data from the specified file.
   --tests=FOO        Select only the specified tests from the benchmarks file;
index 263e9b7..174ea5c 100755 (executable)
@@ -53,7 +53,7 @@ push @paths, qw(/usr/local/lib /lib /usr/lib)
         unless $linux64;
 
 unless(GetOptions(\%options,
-                  'target=s', 'make=s', 'jobs|j=i', 'expect-pass=i',
+                  'target=s', 'make=s', 'jobs|j=i', 'crash', 'expect-pass=i',
                   'expect-fail' => sub { $options{'expect-pass'} = 0; },
                   'clean!', 'one-liner|e=s@', 'c', 'l', 'w', 'match=s',
                   'no-match=s' => sub {
@@ -100,7 +100,7 @@ if (defined $target && $target =~ /\.t\z/) {
         die_255("$0: Test-case targets can't be run with --$_")
             if $options{$_};
     }
-    die_255("$0: Test-case targets can't be combined with an explict test")
+    die_255("$0: Test-case targets can't be combined with an explicit test")
         if @ARGV;
 
     # Needing this unless is a smell suggesting that this implementation of
@@ -139,25 +139,27 @@ bisect.pl - use git bisect to pinpoint changes
 
 =head1 SYNOPSIS
 
-    # When did this become an error?
-    .../Porting/bisect.pl -e 'my $a := 2;'
-    # When did this stop being an error?
-    .../Porting/bisect.pl --expect-fail -e '1 // 2'
-    # When did this test start failing?
-    .../Porting/bisect.pl --target t/op/sort.t
-    # When were all lines matching this pattern removed from all files?
-    .../Porting/bisect.pl --match '\b(?:PL_)hash_seed_set\b'
-    # When was some line matching this pattern added to some file?
-    .../Porting/bisect.pl --expect-fail --match '\buseithreads\b'
-    # When did this test program stop exiting 0?
-    .../Porting/bisect.pl -- ./perl -Ilib ../test_prog.pl
-    # When did this first become valid syntax?
-    .../Porting/bisect.pl --target=miniperl --end=v5.10.0 \
-         --expect-fail -e 'my $a := 2;'
-    # What was the last revision to build with these options?
-    .../Porting/bisect.pl --test-build -Dd_dosuid
-    # When did this test program start generating errors from valgrind?
-    .../Porting/bisect.pl --valgrind ../test_prog.pl
+ # When did this become an error?
+ .../Porting/bisect.pl -e 'my $a := 2;'
+ # When did this stop being an error?
+ .../Porting/bisect.pl --expect-fail -e '1 // 2'
+ # When did this test start failing?
+ .../Porting/bisect.pl --target t/op/sort.t
+ # When were all lines matching this pattern removed from all files?
+ .../Porting/bisect.pl --match '\b(?:PL_)hash_seed_set\b'
+ # When was some line matching this pattern added to some file?
+ .../Porting/bisect.pl --expect-fail --match '\buseithreads\b'
+ # When did this test program stop exiting 0?
+ .../Porting/bisect.pl -- ./perl -Ilib ../test_prog.pl
+ # When did this test program start crashing (any signal or coredump)?
+ .../Porting/bisect.pl --crash -- ./perl -Ilib ../test_prog.pl
+ # When did this first become valid syntax?
+ .../Porting/bisect.pl --target=miniperl --end=v5.10.0 \
+      --expect-fail -e 'my $a := 2;'
+ # What was the last revision to build with these options?
+ .../Porting/bisect.pl --test-build -Dd_dosuid
+ # When did this test program start generating errors from valgrind?
+ .../Porting/bisect.pl --valgrind ../test_prog.pl
 
 =head1 DESCRIPTION
 
@@ -397,6 +399,13 @@ revision. The bisect run will find the first commit where it passes.
 
 =item *
 
+--crash
+
+Treat any non-crash as success, any crash as failure. (Crashing defined
+as exiting with a signal or a core dump.)
+
+=item *
+
 -D I<config_arg=value>
 
 =item *
@@ -624,7 +633,7 @@ file is fed to C<patch -p1> on standard input. For C<=~>, the patch is
 applied if no lines match the pattern.
 
 As the empty pattern in Perl is a special case (it matches the most recent
-sucessful match) which is not useful here, an the treatment of empty pattern
+successful match) which is not useful here, the treatment of an empty pattern
 is special-cased. C<I<filename> =~ //> applies the patch if filename is
 present. C<I<filename> !~ //> applies the patch if filename missing. This
 makes it easy to unconditionally apply patches to files, and to use a patch
@@ -1137,6 +1146,7 @@ sub run_report_and_exit {
     my $ret = run_with_options({setprgp => $options{setpgrp},
                                 timeout => $options{timeout},
                                }, @_);
+    $ret &= 0xff if $options{crash};
     report_and_exit(!$ret, 'zero exit from', 'non-zero exit from', "@_");
 }
 
index 34dbc00..8e6a726 100755 (executable)
@@ -710,9 +710,10 @@ laszlo.molnar\100eth.ericsson.se        molnarl\100cdata.tvnet.hu
 +                                       ml1050\100freemail.hu
 lewart\100uiuc.edu                      lewart\100vadds.cvm.uiuc.edu
 +                                       d-lewart\100uiuc.edu
-lkundrak\100v3.sk                      lubo.rintel\100gooddata.com
+lkundrak\100v3.sk                       lubo.rintel\100gooddata.com
 lstein\100cshl.org                      lstein\100formaggio.cshl.org
 +                                       lstein\100genome.wi.mit.edu
+l.mai\100web.de                         plokinom\100gmail.com
 lupe\100lupe-christoph.de               lupe\100alanya.m.isar.de
 lutherh\100stratcom.com                 lutherh\100infinet.com
 mab\100wdl.loral.com                    markb\100rdcf.sm.unisys.com
index 37017cf..7964b9b 100755 (executable)
@@ -189,11 +189,11 @@ foreach my $pm_file (sort keys %module_diffs) {
                and grep $pm_version eq $_, @{$skip_versions{$pm_file}}) {
                print "ok $count - SKIP $pm_file version $pm_version\n";
            } else {
-               print "not ok $count - $pm_file\n";
+               print "not ok $count - $pm_file version $pm_version\n";
            }
        } else {
            push @diff, @{$module_diffs{$pm_file}};
-           print "$pm_file\n";
+           print "$pm_file version $pm_version\n";
        }
     }
 }
index 629a082..3b8b2b2 100644 (file)
@@ -39,12 +39,12 @@ alignbytes='4'
 ansi2knr=''
 aphostname='/bin/hostname'
 api_revision='5'
-api_subversion='8'
+api_subversion='9'
 api_version='21'
-api_versionstring='5.21.8'
+api_versionstring='5.21.9'
 ar='ar'
-archlib='/pro/lib/perl5/5.21.8/i686-linux-64int'
-archlibexp='/pro/lib/perl5/5.21.8/i686-linux-64int'
+archlib='/pro/lib/perl5/5.21.9/i686-linux-64int'
+archlibexp='/pro/lib/perl5/5.21.9/i686-linux-64int'
 archname64='64int'
 archname='i686-linux-64int'
 archobjs=''
@@ -342,7 +342,9 @@ d_libm_lib_version='define'
 d_libname_unique='undef'
 d_link='define'
 d_llrint='undef'
+d_llrintl='undef'
 d_llround='undef'
+d_llroundl='undef'
 d_localtime64='undef'
 d_localtime_r='undef'
 d_localtime_r_needs_tzset='undef'
@@ -354,7 +356,9 @@ d_logb='undef'
 d_longdbl='define'
 d_longlong='define'
 d_lrint='undef'
+d_lrintl='undef'
 d_lround='undef'
+d_lroundl='undef'
 d_lseekproto='define'
 d_lstat='define'
 d_madvise='define'
@@ -806,7 +810,7 @@ incpath=''
 incpth='/usr/lib/gcc/i586-suse-linux/4.8/include /usr/local/include /usr/lib/gcc/i586-suse-linux/4.8/include-fixed /usr/lib/gcc/i586-suse-linux/4.8/../../../../i586-suse-linux/include /usr/include'
 inews=''
 initialinstalllocation='/pro/bin'
-installarchlib='/pro/lib/perl5/5.21.8/i686-linux-64int'
+installarchlib='/pro/lib/perl5/5.21.9/i686-linux-64int'
 installbin='/pro/bin'
 installhtml1dir=''
 installhtml3dir=''
@@ -814,13 +818,13 @@ installman1dir='/pro/local/man/man1'
 installman3dir='/pro/local/man/man3'
 installprefix='/pro'
 installprefixexp='/pro'
-installprivlib='/pro/lib/perl5/5.21.8'
+installprivlib='/pro/lib/perl5/5.21.9'
 installscript='/pro/bin'
-installsitearch='/pro/lib/perl5/site_perl/5.21.8/i686-linux-64int'
+installsitearch='/pro/lib/perl5/site_perl/5.21.9/i686-linux-64int'
 installsitebin='/pro/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='/pro/lib/perl5/site_perl/5.21.8'
+installsitelib='/pro/lib/perl5/site_perl/5.21.9'
 installsiteman1dir='/pro/local/man/man1'
 installsiteman3dir='/pro/local/man/man3'
 installsitescript='/pro/bin'
@@ -942,7 +946,7 @@ perl_patchlevel=''
 perl_static_inline='static __inline__'
 perladmin='hmbrand@cpan.org'
 perllibs='-lnsl -ldl -lm -lcrypt -lutil -lc'
-perlpath='/pro/bin/perl5.21.8'
+perlpath='/pro/bin/perl5.21.9'
 pg='pg'
 phostname='hostname'
 pidtype='pid_t'
@@ -951,8 +955,8 @@ pmake=''
 pr=''
 prefix='/pro'
 prefixexp='/pro'
-privlib='/pro/lib/perl5/5.21.8'
-privlibexp='/pro/lib/perl5/5.21.8'
+privlib='/pro/lib/perl5/5.21.9'
+privlibexp='/pro/lib/perl5/5.21.9'
 procselfexe='"/proc/self/exe"'
 prototype='define'
 ptrsize='4'
@@ -1018,17 +1022,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 17, 29, 31, 0'
 sig_size='69'
 signal_t='void'
-sitearch='/pro/lib/perl5/site_perl/5.21.8/i686-linux-64int'
-sitearchexp='/pro/lib/perl5/site_perl/5.21.8/i686-linux-64int'
+sitearch='/pro/lib/perl5/site_perl/5.21.9/i686-linux-64int'
+sitearchexp='/pro/lib/perl5/site_perl/5.21.9/i686-linux-64int'
 sitebin='/pro/bin'
 sitebinexp='/pro/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/pro/lib/perl5/site_perl/5.21.8'
+sitelib='/pro/lib/perl5/site_perl/5.21.9'
 sitelib_stem='/pro/lib/perl5/site_perl'
-sitelibexp='/pro/lib/perl5/site_perl/5.21.8'
+sitelibexp='/pro/lib/perl5/site_perl/5.21.9'
 siteman1dir='/pro/local/man/man1'
 siteman1direxp='/pro/local/man/man1'
 siteman3dir='/pro/local/man/man3'
@@ -1054,7 +1058,7 @@ src='.'
 ssizetype='ssize_t'
 st_ino_sign='1'
 st_ino_size='8'
-startperl='#!/pro/bin/perl5.21.8'
+startperl='#!/pro/bin/perl5.21.9'
 startsh='#!/bin/sh'
 static_ext=' '
 stdchar='char'
@@ -1067,7 +1071,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/usr/include/string.h'
 submit=''
-subversion='8'
+subversion='9'
 sysman='/usr/share/man/man1'
 sysroot=''
 tail=''
@@ -1166,8 +1170,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.21.8'
-version_patchlevel_string='version 21 subversion 8'
+version='5.21.9'
+version_patchlevel_string='version 21 subversion 9'
 versiononly='define'
 vi=''
 xlibpth='/usr/lib/386 /lib/386'
@@ -1177,10 +1181,10 @@ zcat=''
 zip='zip'
 PERL_REVISION=5
 PERL_VERSION=21
-PERL_SUBVERSION=8
+PERL_SUBVERSION=9
 PERL_API_REVISION=5
 PERL_API_VERSION=21
-PERL_API_SUBVERSION=8
+PERL_API_SUBVERSION=9
 PERL_PATCHLEVEL=''
 PERL_CONFIG_SH=true
 : Variables propagated from previous config.sh file.
index be4ad91..1fc8f49 100644 (file)
  *     This symbol contains the ~name expanded version of ARCHLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define ARCHLIB "/pro/lib/perl5/5.21.8/i686-linux-64int-ld"            /**/
-#define ARCHLIB_EXP "/pro/lib/perl5/5.21.8/i686-linux-64int-ld"                /**/
+#define ARCHLIB "/pro/lib/perl5/5.21.9/i686-linux-64int-ld"            /**/
+#define ARCHLIB_EXP "/pro/lib/perl5/5.21.9/i686-linux-64int-ld"                /**/
 
 /* ARCHNAME:
  *     This symbol holds a string representing the architecture name.
  *     This symbol contains the ~name expanded version of PRIVLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define PRIVLIB "/pro/lib/perl5/5.21.8"                /**/
-#define PRIVLIB_EXP "/pro/lib/perl5/5.21.8"            /**/
+#define PRIVLIB "/pro/lib/perl5/5.21.9"                /**/
+#define PRIVLIB_EXP "/pro/lib/perl5/5.21.9"            /**/
 
 /* PTRSIZE:
  *     This symbol contains the size of a pointer, so that the C preprocessor
  *     This symbol contains the ~name expanded version of SITEARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SITEARCH "/pro/lib/perl5/site_perl/5.21.8/i686-linux-64int-ld"         /**/
-#define SITEARCH_EXP "/pro/lib/perl5/site_perl/5.21.8/i686-linux-64int-ld"             /**/
+#define SITEARCH "/pro/lib/perl5/site_perl/5.21.9/i686-linux-64int-ld"         /**/
+#define SITEARCH_EXP "/pro/lib/perl5/site_perl/5.21.9/i686-linux-64int-ld"             /**/
 
 /* SITELIB:
  *     This symbol contains the name of the private library for this package.
  *     removed.  The elements in inc_version_list (inc_version_list.U) can
  *     be tacked onto this variable to generate a list of directories to search.
  */
-#define SITELIB "/pro/lib/perl5/site_perl/5.21.8"              /**/
-#define SITELIB_EXP "/pro/lib/perl5/site_perl/5.21.8"          /**/
+#define SITELIB "/pro/lib/perl5/site_perl/5.21.9"              /**/
+#define SITELIB_EXP "/pro/lib/perl5/site_perl/5.21.9"          /**/
 #define SITELIB_STEM "/pro/lib/perl5/site_perl"                /**/
 
 /* SSize_t:
  *     script to make sure (one hopes) that it runs with perl and not
  *     some shell.
  */
-#define STARTPERL "#!/pro/bin/perl5.21.8"              /**/
+#define STARTPERL "#!/pro/bin/perl5.21.9"              /**/
 
 /* HAS_STDIO_STREAM_ARRAY:
  *     This symbol, if defined, tells that there is an array
index 4301088..048d571 100755 (executable)
@@ -446,7 +446,7 @@ sub do_check {
   sub add_to_section {
     my ( $section, $data, $title ) = @_;
 
-    #undef is a valid version name in Module::CoreList so supress warnings about concatenating undef values
+    #undef is a valid version name in Module::CoreList so suppress warnings about concatenating undef values
     no warnings 'uninitialized';
     for ( values %{ $data->{$title} } ) {
       my ( $mod, $old_v, $new_v ) = @{$_};
@@ -479,7 +479,7 @@ sub do_check {
 
     # if we could not parse the module name, it will be uninitalized
     # in sort. This is not a problem as it will just result in these
-    # sections being placed near the begining of the section
+    # sections being placed near the beginning of the section
     no warnings 'uninitialized';
     $section->{items} =
       [ sort { lc $a->{name} cmp lc $b->{name} } @{ $section->{items} } ];
index 818d002..270b594 100644 (file)
@@ -17,6 +17,19 @@ Consult your favorite dictionary for details.
 
 =head1 EPIGRAPHS
 
+=head2 v5.21.8 - Bill Watterson, "Scientific Progress Goes 'Boink': A Calvin and Hobbes Collection"
+
+L<Announced on 2015-01-20 by Matthew Horsfall|http://www.nntp.perl.org/group/perl.perl5.porters/2015/01/msg224869.html>
+
+Calvin:   OK Hobbes, press the button and duplicate me.
+Hobbes:   Are you sure this is such a good idea?
+Calvin:   Brother! You doubting Thomases get in the way of more scientific advances with your stupid ethical questions! This is a *BRILLIANT* idea! Hit the button, will ya?
+Hobbes:   I'd hate to be accused of inhibiting scientific progress... Here you go.
+[Box]:    *BOINK*
+Hobbes:   Scientific progress goes "BOINK"?
+Calvin?:  It worked! It worked! I'm a genius!
+Cavlin??: No you're not, you liar! *I* invented this!
+
 =head2 v5.21.7 - Robert Heinlein, "The Number of the Beast"
 
 L<Announced on 2014-12-20 by Max Maischein|http://www.nntp.perl.org/group/perl.perl5.porters/2014/12/msg223774.html>
@@ -227,6 +240,51 @@ L<Announced on 2014-05-27 by Ricardo Signes|http://www.nntp.perl.org/group/perl.
   Till the work its master honour.
   Blessing comes from Heaven’s Donor.
 
+=head2 v5.20.2 - Jonathan "Jonti" Picking, L<"Magical Trevor"|http://www.weebls-stuff.com/other-toons/video/magical-trevor.html>
+
+L<Announced on 2015-02-14 by Steve Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2015/02/msg225777.html>
+
+  Everyone loves Magical Trevor,
+  'Cos the tricks that he does are ever so clever;
+  Look at him now, disappearin' the cow,
+  Where is the cow hidden right now?
+
+  Taking a bow, it's Magical Trevor,
+  Everybody's seen that the trick is clever;
+  Look at him there with his leathery, leathery whip!
+  It's made of magic, and with a little flip--
+
+  Yeah, yeah, yeah, the cow is back,
+  Yeah, yeah, yeah, the cow is back;
+  Back, back, back from his magical journey,
+  Yeah!
+
+  What did he see in the parallel dimension?
+  He saw beans, lots of beans, lots of beans, lots of beans;
+  Oh, beans, lots of beans, lots of beans, lots of beans,
+  Yeah, yeah!
+
+=head2 v5.20.2-RC1 - Jonathan "Jonti" Picking, L<"Scampi"|http://www.weebls-stuff.com/other-toons/video/scampi.html>
+
+L<Announced on 2015-02-01 by Steve Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2015/02/msg225273.html>
+
+  I've seen things,
+  I've seen them with my eyes;
+  I've seen things,
+  They're often in disguise.
+
+  Like carrots, handbags, cheese, toilets,
+  Russians, planets, hamsters, weddings,
+  Poets, Stalin, Kuala Lumpur!
+  Pygmies, budgies, Kuala Lumpur!
+
+  I've seen things,
+  I've seen them with my eyes;
+  I've seen things,
+  They're often in disguise.
+
+  Like carrots, handbags, cheese...
+
 =head2 v5.20.1 - Lorenzo da Ponte, trans. Diana Reed, "Così fan tutte"
 
 L<Announced on 2014-09-14 by Steve Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2014/09/msg219789.html>
index 7b9e770..effd166 100644 (file)
@@ -166,7 +166,7 @@ for the particular file in core.)
 =item Utility Changes
 
 Changes to installed programs such as F<perlbug> and F<xsubpp> go here. Most
-of these are built within the directories F<utils> and F<x2p>.
+of these are built within the directory F<utils>.
 
 =item New Documentation
 
index 8397d73..e5ceff5 100644 (file)
@@ -419,7 +419,7 @@ here.
 
 XXX Generate this with:
 
-  perl Porting/acknowledgements.pl v5.21.8..HEAD
+  perl Porting/acknowledgements.pl v5.21.9..HEAD
 
 =head1 Reporting Bugs
 
index a4793f3..75b53f3 100644 (file)
@@ -378,7 +378,7 @@ here.
 
 XXX Generate this with:
 
-  perl Porting/acknowledgements.pl v5.21.8..HEAD
+  perl Porting/acknowledgements.pl v5.21.9..HEAD
 
 =head1 Reporting Bugs
 
index 661f98d..29a19a6 100755 (executable)
@@ -143,7 +143,7 @@ sub calc_longtable {
 
        emit Configure => $configure_size, 1;
 
-       foreach my $dir (qw(Cross djgpp emacs h2pl hints NetWare os2 plan9 Porting qnx symbian utils vms vos win32 x2p)) {
+       foreach my $dir (qw(Cross djgpp emacs h2pl hints NetWare os2 plan9 Porting qnx symbian utils vms vos win32)) {
                calc_dir($dir);
        }
 }
index 0a6165f..3618eec 100644 (file)
@@ -1381,7 +1381,7 @@ The files of Perl source code distribution do carry a lot of
 copyrights, by various people.  (There are many copyrights embedded in
 perl.c, for example.)  The most straightforward thing for pumpkings to
 do is to simply update Larry's copyrights at the beginning of the
-*.[hcy], x2p/*.[hcy], *.pl, and README files, and leave all other
+*.[hcy], *.pl, and README files, and leave all other
 copyrights alone.  Doing more than that requires quite a bit of tracking. 
 
 =back
index a724a94..644e49c 100644 (file)
@@ -15,14 +15,14 @@ document that starts with a checklist for your release.
 
 This script is run as:
 
-  perl Porting/make-rmg-checklist \
-      --type [BLEAD-POINT or MAINT or ...] > /tmp/rmg.pod
+    perl Porting/make-rmg-checklist \
+        --type [BLEAD-POINT or MAINT or ...] > /tmp/rmg.pod
 
 You can also pass the C<--html> flag to generate an HTML document instead of
 POD.
 
-  perl Porting/make-rmg-checklist --html \
-      --type [BLEAD-POINT or MAINT or ...] > /tmp/rmg.html
+    perl Porting/make-rmg-checklist --html \
+        --type [BLEAD-POINT or MAINT or ...] > /tmp/rmg.html
 
 =head1 SYNOPSIS
 
@@ -321,23 +321,23 @@ C<nmake> instead.
 
 Ensure dual-life CPAN modules are stable, which comes down to:
 
- for each module that fails its regression tests on $current
-     did it fail identically on $previous?
-     if yes, "SEP" (Somebody Else's Problem)
-     else work out why it failed (a bisect is useful for this)
  for each module that fails its regression tests on $current
+       did it fail identically on $previous?
+       if yes, "SEP" (Somebody Else's Problem)
+       else work out why it failed (a bisect is useful for this)
 
- attempt to group failure causes
  attempt to group failure causes
 
- for each failure cause
-     is that a regression?
-     if yes, figure out how to fix it
-         (more code? revert the code that broke it)
-     else
-         (presumably) it's relying on something un-or-under-documented
-         should the existing behaviour stay?
-             yes - goto "regression"
-             no - note it in perldelta as a significant bugfix
-             (also, try to inform the module's author)
  for each failure cause
+       is that a regression?
+       if yes, figure out how to fix it
+           (more code? revert the code that broke it)
+       else
+           (presumably) it's relying on something un-or-under-documented
+           should the existing behaviour stay?
+               yes - goto "regression"
+               no - note it in perldelta as a significant bugfix
+               (also, try to inform the module's author)
 
 =head3 monitor smoke tests for failures
 
@@ -350,6 +350,15 @@ the raw reports.
 Similarly, monitor the smoking of perl for compiler warnings, and try to
 fix.
 
+=for checklist skip BLEAD-POINT
+
+=head3 monitor CPAN testers for failures
+
+For any release except a BLEAD-POINT: Examine the relevant analysis report(s)
+at http://analysis.cpantesters.org/beforemaintrelease to see how the impending
+release is performing compared to previous releases with regard to building
+and testing CPAN modules.
+
 =head3 update perldelta
 
 Get perldelta in a mostly finished state.
@@ -377,7 +386,7 @@ bump the version further.
 
 There is a tool to semi-automate this process:
 
-     $ ./perl -Ilib Porting/bump-perl-version -i 5.10.0 5.10.1
+    $ ./perl -Ilib Porting/bump-perl-version -i 5.10.0 5.10.1
 
 Remember that this tool is largely just grepping for '5.10.0' or whatever,
 so it will generate false positives. Be careful not change text like
@@ -388,8 +397,7 @@ Use git status and git diff to select changes you want to keep.
 Be particularly careful with F<INSTALL>, which contains a mixture of
 C<5.10.0>-type strings, some of which need bumping on every release, and
 some of which need to be left unchanged.
-The line in F<INSTALL> about "is binary incompatible with" requires a
-correct choice of earlier version to declare incompatibility with.
+See below in L<"update INSTALL"> for more details.
 
 For the first RC release leading up to a BLEAD-FINAL release, update the
 description of which releases are now "officially" supported in
@@ -405,32 +413,32 @@ to guarantee binary compatibility in maint branches.
 After editing, regenerate uconfig.h (this must be run on a system with a
 /bin/sh available):
 
- $ perl regen/uconfig_h.pl
   $ perl regen/uconfig_h.pl
 
 This might not cause any new changes.
 
 You may also need to regen opcodes:
 
- $ ./perl -Ilib regen/opcode.pl
   $ ./perl -Ilib regen/opcode.pl
 
-You may have to add stub entries in C<%Module::CoreList::version>, 
+You may have to add stub entries in C<%Module::CoreList::version>,
 C<%Module::CoreList::deprecated> and C<%Module::CoreList::Utils::delta>.
 If so, you must up their version numbers as well.
 
 Test your changes:
 
- $ git clean -xdf   # careful if you don't have local files to keep!
- $ ./Configure -des -Dusedevel
- $ make
- $ make test
   $ git clean -xdf   # careful if you don't have local files to keep!
   $ ./Configure -des -Dusedevel
   $ make
   $ make test
 
 Commit your changes:
 
- $ git status
- $ git diff
- B<review the delta carefully>
   $ git status
   $ git diff
   B<review the delta carefully>
 
- $ git commit -a -m 'Bump the perl version in various places for 5.x.y'
   $ git commit -a -m 'Bump the perl version in various places for 5.x.y'
 
 At this point you may want to compare the commit with a previous bump to
 see if they look similar.  See commit f7cf42bb69 for an example of a
@@ -442,8 +450,11 @@ version number.
 
 =head3 update INSTALL
 
-Review and update INSTALL to account for the change in version number;
-in particular, the "Coexistence with earlier versions of perl 5" section.
+Review and update INSTALL to account for the change in version number.
+The lines in F<INSTALL> about "is not binary compatible with" may require a
+correct choice of earlier version to declare incompatibility with. These are
+in the "Changes and Incompatibilities" and "Coexistence with earlier versions
+of perl 5" sections.
 
 Be particularly careful with the section "Upgrading from 5.X.Y or earlier".
 The "X.Y" needs to be changed to the most recent version that we are
@@ -460,7 +471,7 @@ release (so for 5.15.3 this would be 5.15.2).
 
 Check that the copyright years are up to date by running:
 
- $ ./perl t/porting/copyright.t --now
   $ ./perl t/porting/copyright.t --now
 
 Remedy any test failures by editing README or perl.c accordingly (search for
 the "Copyright"). If updating perl.c, check if the file's own copyright date in
@@ -521,7 +532,7 @@ need to freeze blead during the release. This is less important for
 BLEAD-FINAL, MAINT, and RC releases, since blead will already be frozen in
 those cases. Create the branch by running
 
-  git checkout -b release-5.xx.yy
+    git checkout -b release-5.xx.yy
 
 =head3 build a clean perl
 
@@ -535,12 +546,26 @@ then configure and build perl so that you have a Makefile and porting tools:
 
     $ ./Configure -Dusedevel -des && make
 
+=head3 Check module versions
+
+For each Perl release since the previous release of the current branch, check
+for modules that have identical version numbers but different contents by
+running:
+
+    $ ./perl Porting/cmpVERSION.pl --tag=v5.X.YY
+
+(This is done automatically by F<t/porting/cmp_version.t> for the previous
+release of the current branch, but not for any releases from other branches.)
+
+Any modules that fail will need a version bump, plus a nudge to the upstream
+maintainer for 'cpan' upstream modules.
+
 =head3 update Module::CoreList
 
 =head4 Bump Module::CoreList* $VERSIONs
 
-If necessary, bump C<$Module::CoreList::VERSION> (there's no need to do this for
-every RC; in RC1, bump the version to a new clean number that will
+If necessary, bump C<$Module::CoreList::VERSION> (there's no need to do this
+for every RC; in RC1, bump the version to a new clean number that will
 appear in the final release, and leave as-is for the later RCs and final).
 It may also happen that C<Module::CoreList> has been modified in blead, and
 hence has a new version number already.  (But make sure it is not the same
@@ -599,13 +624,11 @@ This will chug for a while, possibly reporting various warnings about
 badly-indexed CPAN modules unrelated to the modules actually in core.
 Assuming all goes well, it will update
 F<dist/Module-CoreList/lib/Module/CoreList.pm> and possibly
-F<dist/Module-CoreList/lib/Module/CoreList.pod> and/or
 F<dist/Module-CoreList/lib/Module/CoreList/Utils.pm>.
 
 Check those files over carefully:
 
     $ git diff dist/Module-CoreList/lib/Module/CoreList.pm
-    $ git diff dist/Module-CoreList/lib/Module/CoreList.pod
     $ git diff dist/Module-CoreList/lib/Module/CoreList/Utils.pm
 
 =head4 Bump version in Module::CoreList F<Changes>
@@ -618,23 +641,10 @@ Add a perldelta entry for the new Module::CoreList version.
 
 =for checklist skip RC
 
-=head4 Update C<%Module::CoreList::released> and C<CAVEATS>
+=head4 Update C<%Module::CoreList::released>
 
-For any release except an RC:
-
-=over 4
-
-=item *
-
-Update this version's entry in the C<%released> hash with today's date.
-
-=item *
-
-Make sure that the script has correctly updated the C<CAVEATS> section
-(Note, the C<CAVEATS> section is in
-F<dist/Module-CoreList/lib/Module/CoreList.pod>)
-
-=back
+For any release except an RC: Update this version's entry in the C<%released>
+hash with today's date.
 
 =head4 Commit Module::CoreList changes
 
@@ -642,23 +652,33 @@ Finally, commit the new version of Module::CoreList:
 (unless this is for MAINT; in which case commit it to blead first, then
 cherry-pick it back).
 
-    $ git commit -m 'Update Module::CoreList for 5.x.y' dist/Module-CoreList/Changes dist/Module-CoreList/lib/Module/CoreList.pm dist/Module-CoreList/lib/Module/CoreList.pod dist/Module-CoreList/lib/Module/CoreList/Utils.pm
+    $ git commit -m 'Update Module::CoreList for 5.x.y' \
+        dist/Module-CoreList/Changes \
+        dist/Module-CoreList/lib/Module/CoreList.pm \
+        dist/Module-CoreList/lib/Module/CoreList/Utils.pm
 
 =head4 Rebuild and test
 
-Build and test to get the changes into the currently built lib directory and to ensure
-all tests are passing.
+Build and test to get the changes into the currently built lib directory and to
+ensure all tests are passing.
 
 =head3 finalize perldelta
 
 Finalize the perldelta.  In particular, fill in the Acknowledgements
 section, which can be generated with something like:
 
-  $ perl Porting/acknowledgements.pl v5.15.0..HEAD
+    $ perl Porting/acknowledgements.pl v5.15.0..HEAD
+
+Fill in the "New/Updated Modules" sections now that Module::CoreList is
+updated:
+
+    $ ./perl -Ilib Porting/corelist-perldelta.pl \
+        --mode=update pod/perldelta.pod
 
-Fill in the "New/Updated Modules" sections now that Module::CoreList is updated:
+For a MAINT release use something like this instead:
 
-  $ ./perl -Ilib Porting/corelist-perldelta.pl --mode=update pod/perldelta.pod
+    $ ./perl -Ilib Porting/corelist-perldelta.pl 5.020001 5.020002 \
+        --mode=update pod/perldelta.pod
 
 Ideally, also fill in a summary of the major changes to each module for which
 an entry has been added by F<corelist-perldelta.pl>.
@@ -674,7 +694,8 @@ run through pod and spell checkers, e.g.
 Also, you may want to generate and view an HTML version of it to check
 formatting, e.g.
 
-    $ ./perl -Ilib ext/Pod-Html/bin/pod2html pod/perldelta.pod > /tmp/perldelta.html
+    $ ./perl -Ilib ext/Pod-Html/bin/pod2html pod/perldelta.pod > \
+        /tmp/perldelta.html
 
 Another good HTML preview option is http://search.cpan.org/pod2html
 
@@ -785,7 +806,9 @@ a final release, remove it. For example:
      static const char * const local_patches[] = {
              NULL
     +        ,"RC1"
-             PERL_GIT_UNPUSHED_COMMITS /* do not remove this line */
+     #ifdef PERL_GIT_UNCOMMITTED_CHANGES
+             ,"uncommitted-changes"
+     #endif
 
 Be sure to commit your change:
 
@@ -820,7 +843,7 @@ directory, they will still identify themselves using git tags and
 commits. (Note that for an odd-numbered version, perl will install
 itself as C<perl5.x.y>). C<perl -v> will identify itself as:
 
- This is perl 5, version X, subversion Y (v5.X.Y (v5.X.Z-NNN-gdeadbeef))
   This is perl 5, version X, subversion Y (v5.X.Y (v5.X.Z-NNN-gdeadbeef))
 
 where 5.X.Z is the latest tag, NNN the number of commits since this tag,
 and C<< deadbeef >> commit of that tag.
@@ -859,14 +882,14 @@ L<http://tukaani.org/xz/>.
 Create a tarball. Use the C<-s> option to specify a suitable suffix for
 the tarball and directory name:
 
- $ cd root/of/perl/tree
- $ make distclean       # make sure distclean works
- $ git clean -xdf       # make sure perl and git agree on files
-                        # git clean should not output anything!
- $ git status           # and there's nothing lying around
   $ cd root/of/perl/tree
   $ make distclean       # make sure distclean works
   $ git clean -xdf       # make sure perl and git agree on files
+                           # git clean should not output anything!
   $ git status           # and there's nothing lying around
 
- $ perl Porting/makerel -bx -s RC1            # for a release candidate
- $ perl Porting/makerel -bx                   # for a final release
   $ perl Porting/makerel -bx -s RC1            # for a release candidate
+    $ perl Porting/makerel -bx                   # for the release itself
 
 This creates the  directory F<../perl-x.y.z-RC1> or similar, copies all
 the MANIFEST files into it, sets the correct permissions on them, then
@@ -1036,7 +1059,7 @@ F</home/USERNAME/public_html>, where F<USERNAME> is your login account
 on dromedary.  I<Remember>: if your upload is partially successful, you
 may need to contact a PAUSE administrator or even bump the version of perl.
 
-Upload both the .gz and .bz2 versions of the tarball.
+Upload the .gz, .xz, and .bz2 versions of the tarball.
 
 Do not proceed any further until you are sure that your tarballs are on CPAN.
 Check your authors directory www.cpan.org (the globally balanced "fast"
@@ -1064,7 +1087,9 @@ Disarm the F<patchlevel.h> change; for example,
      static const char * const local_patches[] = {
              NULL
     -        ,"RC1"
-             PERL_GIT_UNPUSHED_COMMITS /* do not remove this line */
+     #ifdef PERL_GIT_UNCOMMITTED_CHANGES
+             ,"uncommitted-changes"
+     #endif
 
 Be sure to commit your change:
 
@@ -1082,11 +1107,11 @@ Send a carbon copy to C<noc@metacpan.org>
 
 Merge the (local) release branch back into master now, and delete it.
 
-  git checkout blead
-  git pull
-  git merge release-5.xx.yy
-  git push
-  git branch -d release-5.xx.yy
+    git checkout blead
+    git pull
+    git merge release-5.xx.yy
+    git push
+    git branch -d release-5.xx.yy
 
 Note: The merge will create a merge commit if other changes have been pushed
 to blead while you've been working on your release branch. Do NOT rebase your
@@ -1221,7 +1246,7 @@ Run a clean build and test to make sure nothing obvious is broken.
 In particular, F<Porting/perldelta_template.pod> is intentionally exempted
 from podchecker tests, to avoid false positives about placeholder text.
 However, once it's copied to F<pod/perldelta.pod> the contents can now
-cause test failures. Problems should resolved by doing one of the
+cause test failures. Problems should be resolved by doing one of the
 following:
 
 =over
@@ -1289,9 +1314,9 @@ I<You MUST SKIP this step for RC, BLEAD-POINT>
 
 Copy the perldelta.pod for this release into blead; for example:
 
- $ cd ..../blead
- $ cp -i ../5.10.x/pod/perldelta.pod pod/perl5101delta.pod  # for example
- $ git add pod/perl5101delta.pod
   $ cd ..../blead
   $ cp -i ../5.10.x/pod/perldelta.pod pod/perl5101delta.pod  # for example
   $ git add pod/perl5101delta.pod
 
 Don't forget to set the NAME correctly in the new file (e.g. perl5101delta
 rather than perldelta).
@@ -1316,7 +1341,7 @@ Finally, commit and push:
 Make sure any recent F<pod/perlhist.pod> entries are copied to
 F<perlhist.pod> on blead.  e.g.
 
-          5.8.9         2008-Dec-14
+    5.8.9         2008-Dec-14
 
 =head3 bump RT version number
 
@@ -1372,8 +1397,7 @@ Otherwise, run:
 
     $ ./perl -Ilib Porting/corelist.pl cpan
 
-This will update F<dist/Module-CoreList/lib/Module/CoreList.pm>,
-F<dist/Module-CoreList/lib/Module/CoreList.pod> and
+This will update F<dist/Module-CoreList/lib/Module/CoreList.pm> and
 F<dist/Module-CoreList/lib/Module/CoreList/Utils.pm> as it did before,
 but this time adding new sections for the next BLEAD-POINT release.
 
@@ -1396,7 +1420,8 @@ test_porting makefile target to check that they're ok.
 
 Run
 
-    $ ./perl -Ilib -MModule::CoreList -le 'print Module::CoreList->find_version($]) ? "ok" : "not ok"'
+    $ ./perl -Ilib -MModule::CoreList \
+        -le 'print Module::CoreList->find_version($]) ? "ok" : "not ok"'
 
 and check that it outputs "ok" to prove that Module::CoreList now knows
 about blead's current version.
index d7bfb29..2ee3a77 100644 (file)
@@ -24,7 +24,8 @@ Code freezes (which happen in the 5.21.X series)
 
   2014-05-27  5.20.0 ✓        Ricardo Signes
   2014-09-14  5.20.1 ✓        Steve Hay
-  2015-01-??  5.20.2          Steve Hay
+  2015-02-14  5.20.2 ✓        Steve Hay
+  2015-??-??  5.20.3          ??
 
 =head2 Perl 5.18
 
@@ -59,9 +60,9 @@ you should reset the version numbers to the next blead series.
   2014-10-20  5.21.5 ✓        Abigail
   2014-11-20  5.21.6 ✓        Chris "BinGOs" Williams
   2014-12-20  5.21.7 ✓        Max Maischein
-  2015-01-20  5.21.8          Matthew Horsfall
-  2015-02-20  5.21.9          ?
-  2015-03-20  5.21.10         ?
+  2015-01-20  5.21.8         Matthew Horsfall
+  2015-02-20  5.21.9          Sawyer X
+  2015-03-20  5.21.10         Steve Hay
   2015-04-20  5.21.11         ?
 
 (RC0 for 5.22.0 will be released once we think that all the blockers have been
index ec0119c..2090433 100644 (file)
@@ -467,7 +467,7 @@ Natively 64-bit systems need neither -Duse64bitint nor -Duse64bitall.
 On these systems, it might be the default compilation mode, and there
 is currently no guarantee that passing no use64bitall option to the
 Configure process will build a 32bit perl. Implementing -Duse32bit*
-options would be nice for perl 5.21.8.
+options would be nice for perl 5.21.9.
 
 =head2 Profile Perl - am I hot or not?
 
@@ -1169,7 +1169,7 @@ L<http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2013-01/msg00339.html>
 =head1 Big projects
 
 Tasks that will get your name mentioned in the description of the "Highlights
-of 5.21.8"
+of 5.21.9"
 
 =head2 make ithreads more robust
 
index 8a13ce3..af12ec5 100644 (file)
@@ -22,9 +22,9 @@ The build procedure is completely standard:
 Make perl executable and create a symlink for libperl:
 
   chmod a+x /boot/common/bin/perl
-  cd /boot/common/lib; ln -s perl5/5.21.8/BePC-haiku/CORE/libperl.so .
+  cd /boot/common/lib; ln -s perl5/5.21.9/BePC-haiku/CORE/libperl.so .
 
-Replace C<5.21.8> with your respective version of Perl.
+Replace C<5.21.9> with your respective version of Perl.
 
 =head1 KNOWN PROBLEMS
 
index 9d78a86..b36b4dd 100644 (file)
@@ -104,7 +104,7 @@ Motorola chipset.
 
 The version of PA-RISC at the time of this document's last update is 2.0,
 which is also the last there will be. HP PA-RISC systems are usually
-refered to with model description "HP 9000". The last CPU in this series
+referred to with model description "HP 9000". The last CPU in this series
 is the PA-8900.  Support for PA-RISC architectured machines officially
 ends as shown in the following table:
 
@@ -243,7 +243,7 @@ attempt to use a PA-RISC version of Perl on an Itanium system.  This is
 because shared libraries created on an Itanium system cannot be loaded
 while running a PA-RISC executable.
 
-HP Itanium 2 systems are usually refered to with model description
+HP Itanium 2 systems are usually referred to with model description
 "HP Integrity".
 
 =head2 Itanium, Itanium 2 & Madison 6
index 845c2a0..b923a13 100644 (file)
@@ -10,9 +10,9 @@ perlmacosx - Perl under Mac OS X
 
 This document briefly describes Perl under Mac OS X.
 
-  curl -O http://www.cpan.org/src/perl-5.21.8.tar.gz
-  tar -xzf perl-5.21.8.tar.gz
-  cd perl-5.21.8
+  curl -O http://www.cpan.org/src/perl-5.21.9.tar.gz
+  tar -xzf perl-5.21.9.tar.gz
+  cd perl-5.21.9
   ./Configure -des -Dprefix=/usr/local/
   make
   make test
@@ -20,7 +20,7 @@ This document briefly describes Perl under Mac OS X.
 
 =head1 DESCRIPTION
 
-The latest Perl release (5.21.8 as of this writing) builds without changes
+The latest Perl release (5.21.9 as of this writing) builds without changes
 under all versions of Mac OS X from 10.3 "Panther" onwards. 
 
 In order to build your own version of Perl you will need 'make',
index 8adb1b1..4642383 100644 (file)
@@ -619,7 +619,7 @@ C<set PERLLIB_PREFIX> in F<Config.sys>, see L<"PERLLIB_PREFIX">.
 
 =item Additional Perl modules
 
-  unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.21.8/
+  unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.21.9/
 
 Same remark as above applies.  Additionally, if this directory is not
 one of directories on @INC (and @INC is influenced by C<PERLLIB_PREFIX>), you
index 645d10e..61fd667 100644 (file)
@@ -132,7 +132,7 @@ is nothing to worry about at all.
 Some of the parser default template files in /samples are needed in /etc.
 In particular be sure that you at least copy /samples/yyparse.c to /etc
 before running Perl's Configure.  This step ensures successful extraction
-of EBCDIC versions of parser files such as perly.c, perly.h, and x2p/a2p.c.
+of EBCDIC versions of parser files such as perly.c and perly.h.
 This has to be done before running Configure the first time.  If you failed
 to do so then the easiest way to re-Configure Perl is to delete your
 misconfigured build root and re-extract the source from the tar ball.
index 89d4c75..4842b8b 100644 (file)
@@ -142,11 +142,11 @@ You may need to set up a foreign symbol for the unpacking utility of
 choice.  Once you have done so, use a command like the following to
 unpack the archive:
 
-    vmstar -xvf perl-5^.21^.8.tar
+    vmstar -xvf perl-5^.21^.9.tar
 
 Then set default to the top-level source directory like so:
 
-    set default [.perl-5^.21^.8]
+    set default [.perl-5^.21^.9]
 
 and proceed with configuration as described in the next section.
 
index 2d4abf9..08a3149 100644 (file)
@@ -7,15 +7,15 @@
 /* See the generating file for comments */
 
 
-#ifndef PERL_IN_XSUB_RE
+#if defined(PERL_IN_REGCOMP_C)
 
 static const UV Latin1_invlist[] = {
        2,      /* Number of elements */
        148565664, /* Version and data structure type */
        0,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       256
+       0x0,
+       0x100
 };
 
 static const UV AboveLatin1_invlist[] = {
@@ -23,23 +23,23 @@ static const UV AboveLatin1_invlist[] = {
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       256
+       0x0,
+       0x100
 };
 
-#endif /* #ifndef PERL_IN_XSUB_RE */
+#endif /* defined(PERL_IN_REGCOMP_C) */
 
 #if 'A' == 65 /* ASCII/Latin1 */
 
-#ifndef PERL_IN_XSUB_RE
+#if defined(PERL_IN_PERL_C)
 
 static const UV ASCII_invlist[] = { /* for ASCII/Latin1 */
        2,      /* Number of elements */
        148565664, /* Version and data structure type */
        0,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       128
+       0x0,
+       0x80
 };
 
 static const UV Cased_invlist[] = { /* for ASCII/Latin1 */
@@ -47,303 +47,14777 @@ static const UV Cased_invlist[] = { /* for ASCII/Latin1 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       65,
-       91,
-       97,
-       123,
-       170,
-       171,
-       181,
-       182,
-       186,
-       187,
-       192,
-       215,
-       216,
-       247,
-       248,
-       443,
-       444,
-       448,
-       452,
-       660,
-       661,
-       697,
-       704,
-       706,
-       736,
-       741,
-       837,
-       838,
-       880,
-       884,
-       886,
-       888,
-       890,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1377,
-       1416,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       7424,
-       7616,
-       7680,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8501,
-       8505,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8576,
-       8579,
-       8581,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       42560,
-       42606,
-       42624,
-       42654,
-       42786,
-       42888,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       43000,
-       43003,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       64256,
-       64263,
-       64275,
-       64280,
-       65313,
-       65339,
-       65345,
-       65371,
-       66560,
-       66640,
-       71840,
-       71904,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370
+       0x0,
+       0x41,
+       0x5B,
+       0x61,
+       0x7B,
+       0xAA,
+       0xAB,
+       0xB5,
+       0xB6,
+       0xBA,
+       0xBB,
+       0xC0,
+       0xD7,
+       0xD8,
+       0xF7,
+       0xF8,
+       0x1BB,
+       0x1BC,
+       0x1C0,
+       0x1C4,
+       0x294,
+       0x295,
+       0x2B9,
+       0x2C0,
+       0x2C2,
+       0x2E0,
+       0x2E5,
+       0x345,
+       0x346,
+       0x370,
+       0x374,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x561,
+       0x588,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x1D00,
+       0x1DC0,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x2135,
+       0x2139,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2180,
+       0x2183,
+       0x2185,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0xA640,
+       0xA66E,
+       0xA680,
+       0xA69E,
+       0xA722,
+       0xA788,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F8,
+       0xA7FB,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0x10400,
+       0x10450,
+       0x118A0,
+       0x118E0,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A
 };
 
+static const UV Grapheme_Cluster_Break_invlist[] = { /* for ASCII/Latin1 */
+       1484,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       0,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0xA,
+       0xB,
+       0xD,
+       0xE,
+       0x20,
+       0x7F,
+       0xA0,
+       0xAD,
+       0xAE,
+       0x300,
+       0x370,
+       0x483,
+       0x48A,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x600,
+       0x606,
+       0x610,
+       0x61B,
+       0x61C,
+       0x61D,
+       0x64B,
+       0x660,
+       0x670,
+       0x671,
+       0x6D6,
+       0x6DD,
+       0x6DE,
+       0x6DF,
+       0x6E5,
+       0x6E7,
+       0x6E9,
+       0x6EA,
+       0x6EE,
+       0x70F,
+       0x710,
+       0x711,
+       0x712,
+       0x730,
+       0x74B,
+       0x7A6,
+       0x7B1,
+       0x7EB,
+       0x7F4,
+       0x816,
+       0x81A,
+       0x81B,
+       0x824,
+       0x825,
+       0x828,
+       0x829,
+       0x82E,
+       0x859,
+       0x85C,
+       0x8E4,
+       0x903,
+       0x904,
+       0x93A,
+       0x93B,
+       0x93C,
+       0x93D,
+       0x93E,
+       0x941,
+       0x949,
+       0x94D,
+       0x94E,
+       0x950,
+       0x951,
+       0x958,
+       0x962,
+       0x964,
+       0x981,
+       0x982,
+       0x984,
+       0x9BC,
+       0x9BD,
+       0x9BE,
+       0x9BF,
+       0x9C1,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CD,
+       0x9CE,
+       0x9D7,
+       0x9D8,
+       0x9E2,
+       0x9E4,
+       0xA01,
+       0xA03,
+       0xA04,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA41,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA70,
+       0xA72,
+       0xA75,
+       0xA76,
+       0xA81,
+       0xA83,
+       0xA84,
+       0xABC,
+       0xABD,
+       0xABE,
+       0xAC1,
+       0xAC6,
+       0xAC7,
+       0xAC9,
+       0xACA,
+       0xACB,
+       0xACD,
+       0xACE,
+       0xAE2,
+       0xAE4,
+       0xB01,
+       0xB02,
+       0xB04,
+       0xB3C,
+       0xB3D,
+       0xB3E,
+       0xB40,
+       0xB41,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4D,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB62,
+       0xB64,
+       0xB82,
+       0xB83,
+       0xBBE,
+       0xBBF,
+       0xBC0,
+       0xBC1,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCD,
+       0xBCE,
+       0xBD7,
+       0xBD8,
+       0xC00,
+       0xC01,
+       0xC04,
+       0xC3E,
+       0xC41,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC62,
+       0xC64,
+       0xC81,
+       0xC82,
+       0xC84,
+       0xCBC,
+       0xCBD,
+       0xCBE,
+       0xCBF,
+       0xCC0,
+       0xCC2,
+       0xCC3,
+       0xCC5,
+       0xCC6,
+       0xCC7,
+       0xCC9,
+       0xCCA,
+       0xCCC,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCE2,
+       0xCE4,
+       0xD01,
+       0xD02,
+       0xD04,
+       0xD3E,
+       0xD3F,
+       0xD41,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4D,
+       0xD4E,
+       0xD57,
+       0xD58,
+       0xD62,
+       0xD64,
+       0xD82,
+       0xD84,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD0,
+       0xDD2,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDDF,
+       0xDE0,
+       0xDF2,
+       0xDF4,
+       0xE31,
+       0xE32,
+       0xE33,
+       0xE34,
+       0xE3B,
+       0xE47,
+       0xE4F,
+       0xEB1,
+       0xEB2,
+       0xEB3,
+       0xEB4,
+       0xEBA,
+       0xEBB,
+       0xEBD,
+       0xEC8,
+       0xECE,
+       0xF18,
+       0xF1A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF40,
+       0xF71,
+       0xF7F,
+       0xF80,
+       0xF85,
+       0xF86,
+       0xF88,
+       0xF8D,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x102D,
+       0x1031,
+       0x1032,
+       0x1038,
+       0x1039,
+       0x103B,
+       0x103D,
+       0x103F,
+       0x1056,
+       0x1058,
+       0x105A,
+       0x105E,
+       0x1061,
+       0x1071,
+       0x1075,
+       0x1082,
+       0x1083,
+       0x1084,
+       0x1085,
+       0x1087,
+       0x108D,
+       0x108E,
+       0x109D,
+       0x109E,
+       0x1100,
+       0x1160,
+       0x11A8,
+       0x1200,
+       0x135D,
+       0x1360,
+       0x1712,
+       0x1715,
+       0x1732,
+       0x1735,
+       0x1752,
+       0x1754,
+       0x1772,
+       0x1774,
+       0x17B4,
+       0x17B6,
+       0x17B7,
+       0x17BE,
+       0x17C6,
+       0x17C7,
+       0x17C9,
+       0x17D4,
+       0x17DD,
+       0x17DE,
+       0x180B,
+       0x180E,
+       0x180F,
+       0x18A9,
+       0x18AA,
+       0x1920,
+       0x1923,
+       0x1927,
+       0x1929,
+       0x192C,
+       0x1930,
+       0x1932,
+       0x1933,
+       0x1939,
+       0x193C,
+       0x19B5,
+       0x19B8,
+       0x19BA,
+       0x19BB,
+       0x1A17,
+       0x1A19,
+       0x1A1B,
+       0x1A1C,
+       0x1A55,
+       0x1A56,
+       0x1A57,
+       0x1A58,
+       0x1A5F,
+       0x1A60,
+       0x1A61,
+       0x1A62,
+       0x1A63,
+       0x1A65,
+       0x1A6D,
+       0x1A73,
+       0x1A7D,
+       0x1A7F,
+       0x1A80,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B04,
+       0x1B05,
+       0x1B34,
+       0x1B35,
+       0x1B36,
+       0x1B3B,
+       0x1B3C,
+       0x1B3D,
+       0x1B42,
+       0x1B43,
+       0x1B45,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1B82,
+       0x1B83,
+       0x1BA1,
+       0x1BA2,
+       0x1BA6,
+       0x1BA8,
+       0x1BAA,
+       0x1BAB,
+       0x1BAE,
+       0x1BE6,
+       0x1BE7,
+       0x1BE8,
+       0x1BEA,
+       0x1BED,
+       0x1BEE,
+       0x1BEF,
+       0x1BF2,
+       0x1BF4,
+       0x1C24,
+       0x1C2C,
+       0x1C34,
+       0x1C36,
+       0x1C38,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CE1,
+       0x1CE2,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF2,
+       0x1CF4,
+       0x1CF5,
+       0x1CF8,
+       0x1CFA,
+       0x1DC0,
+       0x1DF6,
+       0x1DFC,
+       0x1E00,
+       0x200B,
+       0x200C,
+       0x200E,
+       0x2010,
+       0x2028,
+       0x202F,
+       0x2060,
+       0x2070,
+       0x20D0,
+       0x20F1,
+       0x2CEF,
+       0x2CF2,
+       0x2D7F,
+       0x2D80,
+       0x2DE0,
+       0x2E00,
+       0x302A,
+       0x3030,
+       0x3099,
+       0x309B,
+       0xA66F,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA69F,
+       0xA6A0,
+       0xA6F0,
+       0xA6F2,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA823,
+       0xA825,
+       0xA827,
+       0xA828,
+       0xA880,
+       0xA882,
+       0xA8B4,
+       0xA8C4,
+       0xA8C5,
+       0xA8E0,
+       0xA8F2,
+       0xA926,
+       0xA92E,
+       0xA947,
+       0xA952,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA983,
+       0xA984,
+       0xA9B3,
+       0xA9B4,
+       0xA9B6,
+       0xA9BA,
+       0xA9BC,
+       0xA9BD,
+       0xA9C1,
+       0xA9E5,
+       0xA9E6,
+       0xAA29,
+       0xAA2F,
+       0xAA31,
+       0xAA33,
+       0xAA35,
+       0xAA37,
+       0xAA43,
+       0xAA44,
+       0xAA4C,
+       0xAA4D,
+       0xAA4E,
+       0xAA7C,
+       0xAA7D,
+       0xAAB0,
+       0xAAB1,
+       0xAAB2,
+       0xAAB5,
+       0xAAB7,
+       0xAAB9,
+       0xAABE,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAEB,
+       0xAAEC,
+       0xAAEE,
+       0xAAF0,
+       0xAAF5,
+       0xAAF6,
+       0xAAF7,
+       0xABE3,
+       0xABE5,
+       0xABE6,
+       0xABE8,
+       0xABE9,
+       0xABEB,
+       0xABEC,
+       0xABED,
+       0xABEE,
+       0xAC00,
+       0xAC01,
+       0xAC1C,
+       0xAC1D,
+       0xAC38,
+       0xAC39,
+       0xAC54,
+       0xAC55,
+       0xAC70,
+       0xAC71,
+       0xAC8C,
+       0xAC8D,
+       0xACA8,
+       0xACA9,
+       0xACC4,
+       0xACC5,
+       0xACE0,
+       0xACE1,
+       0xACFC,
+       0xACFD,
+       0xAD18,
+       0xAD19,
+       0xAD34,
+       0xAD35,
+       0xAD50,
+       0xAD51,
+       0xAD6C,
+       0xAD6D,
+       0xAD88,
+       0xAD89,
+       0xADA4,
+       0xADA5,
+       0xADC0,
+       0xADC1,
+       0xADDC,
+       0xADDD,
+       0xADF8,
+       0xADF9,
+       0xAE14,
+       0xAE15,
+       0xAE30,
+       0xAE31,
+       0xAE4C,
+       0xAE4D,
+       0xAE68,
+       0xAE69,
+       0xAE84,
+       0xAE85,
+       0xAEA0,
+       0xAEA1,
+       0xAEBC,
+       0xAEBD,
+       0xAED8,
+       0xAED9,
+       0xAEF4,
+       0xAEF5,
+       0xAF10,
+       0xAF11,
+       0xAF2C,
+       0xAF2D,
+       0xAF48,
+       0xAF49,
+       0xAF64,
+       0xAF65,
+       0xAF80,
+       0xAF81,
+       0xAF9C,
+       0xAF9D,
+       0xAFB8,
+       0xAFB9,
+       0xAFD4,
+       0xAFD5,
+       0xAFF0,
+       0xAFF1,
+       0xB00C,
+       0xB00D,
+       0xB028,
+       0xB029,
+       0xB044,
+       0xB045,
+       0xB060,
+       0xB061,
+       0xB07C,
+       0xB07D,
+       0xB098,
+       0xB099,
+       0xB0B4,
+       0xB0B5,
+       0xB0D0,
+       0xB0D1,
+       0xB0EC,
+       0xB0ED,
+       0xB108,
+       0xB109,
+       0xB124,
+       0xB125,
+       0xB140,
+       0xB141,
+       0xB15C,
+       0xB15D,
+       0xB178,
+       0xB179,
+       0xB194,
+       0xB195,
+       0xB1B0,
+       0xB1B1,
+       0xB1CC,
+       0xB1CD,
+       0xB1E8,
+       0xB1E9,
+       0xB204,
+       0xB205,
+       0xB220,
+       0xB221,
+       0xB23C,
+       0xB23D,
+       0xB258,
+       0xB259,
+       0xB274,
+       0xB275,
+       0xB290,
+       0xB291,
+       0xB2AC,
+       0xB2AD,
+       0xB2C8,
+       0xB2C9,
+       0xB2E4,
+       0xB2E5,
+       0xB300,
+       0xB301,
+       0xB31C,
+       0xB31D,
+       0xB338,
+       0xB339,
+       0xB354,
+       0xB355,
+       0xB370,
+       0xB371,
+       0xB38C,
+       0xB38D,
+       0xB3A8,
+       0xB3A9,
+       0xB3C4,
+       0xB3C5,
+       0xB3E0,
+       0xB3E1,
+       0xB3FC,
+       0xB3FD,
+       0xB418,
+       0xB419,
+       0xB434,
+       0xB435,
+       0xB450,
+       0xB451,
+       0xB46C,
+       0xB46D,
+       0xB488,
+       0xB489,
+       0xB4A4,
+       0xB4A5,
+       0xB4C0,
+       0xB4C1,
+       0xB4DC,
+       0xB4DD,
+       0xB4F8,
+       0xB4F9,
+       0xB514,
+       0xB515,
+       0xB530,
+       0xB531,
+       0xB54C,
+       0xB54D,
+       0xB568,
+       0xB569,
+       0xB584,
+       0xB585,
+       0xB5A0,
+       0xB5A1,
+       0xB5BC,
+       0xB5BD,
+       0xB5D8,
+       0xB5D9,
+       0xB5F4,
+       0xB5F5,
+       0xB610,
+       0xB611,
+       0xB62C,
+       0xB62D,
+       0xB648,
+       0xB649,
+       0xB664,
+       0xB665,
+       0xB680,
+       0xB681,
+       0xB69C,
+       0xB69D,
+       0xB6B8,
+       0xB6B9,
+       0xB6D4,
+       0xB6D5,
+       0xB6F0,
+       0xB6F1,
+       0xB70C,
+       0xB70D,
+       0xB728,
+       0xB729,
+       0xB744,
+       0xB745,
+       0xB760,
+       0xB761,
+       0xB77C,
+       0xB77D,
+       0xB798,
+       0xB799,
+       0xB7B4,
+       0xB7B5,
+       0xB7D0,
+       0xB7D1,
+       0xB7EC,
+       0xB7ED,
+       0xB808,
+       0xB809,
+       0xB824,
+       0xB825,
+       0xB840,
+       0xB841,
+       0xB85C,
+       0xB85D,
+       0xB878,
+       0xB879,
+       0xB894,
+       0xB895,
+       0xB8B0,
+       0xB8B1,
+       0xB8CC,
+       0xB8CD,
+       0xB8E8,
+       0xB8E9,
+       0xB904,
+       0xB905,
+       0xB920,
+       0xB921,
+       0xB93C,
+       0xB93D,
+       0xB958,
+       0xB959,
+       0xB974,
+       0xB975,
+       0xB990,
+       0xB991,
+       0xB9AC,
+       0xB9AD,
+       0xB9C8,
+       0xB9C9,
+       0xB9E4,
+       0xB9E5,
+       0xBA00,
+       0xBA01,
+       0xBA1C,
+       0xBA1D,
+       0xBA38,
+       0xBA39,
+       0xBA54,
+       0xBA55,
+       0xBA70,
+       0xBA71,
+       0xBA8C,
+       0xBA8D,
+       0xBAA8,
+       0xBAA9,
+       0xBAC4,
+       0xBAC5,
+       0xBAE0,
+       0xBAE1,
+       0xBAFC,
+       0xBAFD,
+       0xBB18,
+       0xBB19,
+       0xBB34,
+       0xBB35,
+       0xBB50,
+       0xBB51,
+       0xBB6C,
+       0xBB6D,
+       0xBB88,
+       0xBB89,
+       0xBBA4,
+       0xBBA5,
+       0xBBC0,
+       0xBBC1,
+       0xBBDC,
+       0xBBDD,
+       0xBBF8,
+       0xBBF9,
+       0xBC14,
+       0xBC15,
+       0xBC30,
+       0xBC31,
+       0xBC4C,
+       0xBC4D,
+       0xBC68,
+       0xBC69,
+       0xBC84,
+       0xBC85,
+       0xBCA0,
+       0xBCA1,
+       0xBCBC,
+       0xBCBD,
+       0xBCD8,
+       0xBCD9,
+       0xBCF4,
+       0xBCF5,
+       0xBD10,
+       0xBD11,
+       0xBD2C,
+       0xBD2D,
+       0xBD48,
+       0xBD49,
+       0xBD64,
+       0xBD65,
+       0xBD80,
+       0xBD81,
+       0xBD9C,
+       0xBD9D,
+       0xBDB8,
+       0xBDB9,
+       0xBDD4,
+       0xBDD5,
+       0xBDF0,
+       0xBDF1,
+       0xBE0C,
+       0xBE0D,
+       0xBE28,
+       0xBE29,
+       0xBE44,
+       0xBE45,
+       0xBE60,
+       0xBE61,
+       0xBE7C,
+       0xBE7D,
+       0xBE98,
+       0xBE99,
+       0xBEB4,
+       0xBEB5,
+       0xBED0,
+       0xBED1,
+       0xBEEC,
+       0xBEED,
+       0xBF08,
+       0xBF09,
+       0xBF24,
+       0xBF25,
+       0xBF40,
+       0xBF41,
+       0xBF5C,
+       0xBF5D,
+       0xBF78,
+       0xBF79,
+       0xBF94,
+       0xBF95,
+       0xBFB0,
+       0xBFB1,
+       0xBFCC,
+       0xBFCD,
+       0xBFE8,
+       0xBFE9,
+       0xC004,
+       0xC005,
+       0xC020,
+       0xC021,
+       0xC03C,
+       0xC03D,
+       0xC058,
+       0xC059,
+       0xC074,
+       0xC075,
+       0xC090,
+       0xC091,
+       0xC0AC,
+       0xC0AD,
+       0xC0C8,
+       0xC0C9,
+       0xC0E4,
+       0xC0E5,
+       0xC100,
+       0xC101,
+       0xC11C,
+       0xC11D,
+       0xC138,
+       0xC139,
+       0xC154,
+       0xC155,
+       0xC170,
+       0xC171,
+       0xC18C,
+       0xC18D,
+       0xC1A8,
+       0xC1A9,
+       0xC1C4,
+       0xC1C5,
+       0xC1E0,
+       0xC1E1,
+       0xC1FC,
+       0xC1FD,
+       0xC218,
+       0xC219,
+       0xC234,
+       0xC235,
+       0xC250,
+       0xC251,
+       0xC26C,
+       0xC26D,
+       0xC288,
+       0xC289,
+       0xC2A4,
+       0xC2A5,
+       0xC2C0,
+       0xC2C1,
+       0xC2DC,
+       0xC2DD,
+       0xC2F8,
+       0xC2F9,
+       0xC314,
+       0xC315,
+       0xC330,
+       0xC331,
+       0xC34C,
+       0xC34D,
+       0xC368,
+       0xC369,
+       0xC384,
+       0xC385,
+       0xC3A0,
+       0xC3A1,
+       0xC3BC,
+       0xC3BD,
+       0xC3D8,
+       0xC3D9,
+       0xC3F4,
+       0xC3F5,
+       0xC410,
+       0xC411,
+       0xC42C,
+       0xC42D,
+       0xC448,
+       0xC449,
+       0xC464,
+       0xC465,
+       0xC480,
+       0xC481,
+       0xC49C,
+       0xC49D,
+       0xC4B8,
+       0xC4B9,
+       0xC4D4,
+       0xC4D5,
+       0xC4F0,
+       0xC4F1,
+       0xC50C,
+       0xC50D,
+       0xC528,
+       0xC529,
+       0xC544,
+       0xC545,
+       0xC560,
+       0xC561,
+       0xC57C,
+       0xC57D,
+       0xC598,
+       0xC599,
+       0xC5B4,
+       0xC5B5,
+       0xC5D0,
+       0xC5D1,
+       0xC5EC,
+       0xC5ED,
+       0xC608,
+       0xC609,
+       0xC624,
+       0xC625,
+       0xC640,
+       0xC641,
+       0xC65C,
+       0xC65D,
+       0xC678,
+       0xC679,
+       0xC694,
+       0xC695,
+       0xC6B0,
+       0xC6B1,
+       0xC6CC,
+       0xC6CD,
+       0xC6E8,
+       0xC6E9,
+       0xC704,
+       0xC705,
+       0xC720,
+       0xC721,
+       0xC73C,
+       0xC73D,
+       0xC758,
+       0xC759,
+       0xC774,
+       0xC775,
+       0xC790,
+       0xC791,
+       0xC7AC,
+       0xC7AD,
+       0xC7C8,
+       0xC7C9,
+       0xC7E4,
+       0xC7E5,
+       0xC800,
+       0xC801,
+       0xC81C,
+       0xC81D,
+       0xC838,
+       0xC839,
+       0xC854,
+       0xC855,
+       0xC870,
+       0xC871,
+       0xC88C,
+       0xC88D,
+       0xC8A8,
+       0xC8A9,
+       0xC8C4,
+       0xC8C5,
+       0xC8E0,
+       0xC8E1,
+       0xC8FC,
+       0xC8FD,
+       0xC918,
+       0xC919,
+       0xC934,
+       0xC935,
+       0xC950,
+       0xC951,
+       0xC96C,
+       0xC96D,
+       0xC988,
+       0xC989,
+       0xC9A4,
+       0xC9A5,
+       0xC9C0,
+       0xC9C1,
+       0xC9DC,
+       0xC9DD,
+       0xC9F8,
+       0xC9F9,
+       0xCA14,
+       0xCA15,
+       0xCA30,
+       0xCA31,
+       0xCA4C,
+       0xCA4D,
+       0xCA68,
+       0xCA69,
+       0xCA84,
+       0xCA85,
+       0xCAA0,
+       0xCAA1,
+       0xCABC,
+       0xCABD,
+       0xCAD8,
+       0xCAD9,
+       0xCAF4,
+       0xCAF5,
+       0xCB10,
+       0xCB11,
+       0xCB2C,
+       0xCB2D,
+       0xCB48,
+       0xCB49,
+       0xCB64,
+       0xCB65,
+       0xCB80,
+       0xCB81,
+       0xCB9C,
+       0xCB9D,
+       0xCBB8,
+       0xCBB9,
+       0xCBD4,
+       0xCBD5,
+       0xCBF0,
+       0xCBF1,
+       0xCC0C,
+       0xCC0D,
+       0xCC28,
+       0xCC29,
+       0xCC44,
+       0xCC45,
+       0xCC60,
+       0xCC61,
+       0xCC7C,
+       0xCC7D,
+       0xCC98,
+       0xCC99,
+       0xCCB4,
+       0xCCB5,
+       0xCCD0,
+       0xCCD1,
+       0xCCEC,
+       0xCCED,
+       0xCD08,
+       0xCD09,
+       0xCD24,
+       0xCD25,
+       0xCD40,
+       0xCD41,
+       0xCD5C,
+       0xCD5D,
+       0xCD78,
+       0xCD79,
+       0xCD94,
+       0xCD95,
+       0xCDB0,
+       0xCDB1,
+       0xCDCC,
+       0xCDCD,
+       0xCDE8,
+       0xCDE9,
+       0xCE04,
+       0xCE05,
+       0xCE20,
+       0xCE21,
+       0xCE3C,
+       0xCE3D,
+       0xCE58,
+       0xCE59,
+       0xCE74,
+       0xCE75,
+       0xCE90,
+       0xCE91,
+       0xCEAC,
+       0xCEAD,
+       0xCEC8,
+       0xCEC9,
+       0xCEE4,
+       0xCEE5,
+       0xCF00,
+       0xCF01,
+       0xCF1C,
+       0xCF1D,
+       0xCF38,
+       0xCF39,
+       0xCF54,
+       0xCF55,
+       0xCF70,
+       0xCF71,
+       0xCF8C,
+       0xCF8D,
+       0xCFA8,
+       0xCFA9,
+       0xCFC4,
+       0xCFC5,
+       0xCFE0,
+       0xCFE1,
+       0xCFFC,
+       0xCFFD,
+       0xD018,
+       0xD019,
+       0xD034,
+       0xD035,
+       0xD050,
+       0xD051,
+       0xD06C,
+       0xD06D,
+       0xD088,
+       0xD089,
+       0xD0A4,
+       0xD0A5,
+       0xD0C0,
+       0xD0C1,
+       0xD0DC,
+       0xD0DD,
+       0xD0F8,
+       0xD0F9,
+       0xD114,
+       0xD115,
+       0xD130,
+       0xD131,
+       0xD14C,
+       0xD14D,
+       0xD168,
+       0xD169,
+       0xD184,
+       0xD185,
+       0xD1A0,
+       0xD1A1,
+       0xD1BC,
+       0xD1BD,
+       0xD1D8,
+       0xD1D9,
+       0xD1F4,
+       0xD1F5,
+       0xD210,
+       0xD211,
+       0xD22C,
+       0xD22D,
+       0xD248,
+       0xD249,
+       0xD264,
+       0xD265,
+       0xD280,
+       0xD281,
+       0xD29C,
+       0xD29D,
+       0xD2B8,
+       0xD2B9,
+       0xD2D4,
+       0xD2D5,
+       0xD2F0,
+       0xD2F1,
+       0xD30C,
+       0xD30D,
+       0xD328,
+       0xD329,
+       0xD344,
+       0xD345,
+       0xD360,
+       0xD361,
+       0xD37C,
+       0xD37D,
+       0xD398,
+       0xD399,
+       0xD3B4,
+       0xD3B5,
+       0xD3D0,
+       0xD3D1,
+       0xD3EC,
+       0xD3ED,
+       0xD408,
+       0xD409,
+       0xD424,
+       0xD425,
+       0xD440,
+       0xD441,
+       0xD45C,
+       0xD45D,
+       0xD478,
+       0xD479,
+       0xD494,
+       0xD495,
+       0xD4B0,
+       0xD4B1,
+       0xD4CC,
+       0xD4CD,
+       0xD4E8,
+       0xD4E9,
+       0xD504,
+       0xD505,
+       0xD520,
+       0xD521,
+       0xD53C,
+       0xD53D,
+       0xD558,
+       0xD559,
+       0xD574,
+       0xD575,
+       0xD590,
+       0xD591,
+       0xD5AC,
+       0xD5AD,
+       0xD5C8,
+       0xD5C9,
+       0xD5E4,
+       0xD5E5,
+       0xD600,
+       0xD601,
+       0xD61C,
+       0xD61D,
+       0xD638,
+       0xD639,
+       0xD654,
+       0xD655,
+       0xD670,
+       0xD671,
+       0xD68C,
+       0xD68D,
+       0xD6A8,
+       0xD6A9,
+       0xD6C4,
+       0xD6C5,
+       0xD6E0,
+       0xD6E1,
+       0xD6FC,
+       0xD6FD,
+       0xD718,
+       0xD719,
+       0xD734,
+       0xD735,
+       0xD750,
+       0xD751,
+       0xD76C,
+       0xD76D,
+       0xD788,
+       0xD789,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xD800,
+       0xE000,
+       0xFB1E,
+       0xFB1F,
+       0xFE00,
+       0xFE10,
+       0xFE20,
+       0xFE2E,
+       0xFEFF,
+       0xFF00,
+       0xFF9E,
+       0xFFA0,
+       0xFFF0,
+       0xFFFC,
+       0x101FD,
+       0x101FE,
+       0x102E0,
+       0x102E1,
+       0x10376,
+       0x1037B,
+       0x10A01,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A10,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10AE5,
+       0x10AE7,
+       0x11000,
+       0x11001,
+       0x11002,
+       0x11003,
+       0x11038,
+       0x11047,
+       0x1107F,
+       0x11082,
+       0x11083,
+       0x110B0,
+       0x110B3,
+       0x110B7,
+       0x110B9,
+       0x110BB,
+       0x110BD,
+       0x110BE,
+       0x11100,
+       0x11103,
+       0x11127,
+       0x1112C,
+       0x1112D,
+       0x11135,
+       0x11173,
+       0x11174,
+       0x11180,
+       0x11182,
+       0x11183,
+       0x111B3,
+       0x111B6,
+       0x111BF,
+       0x111C1,
+       0x1122C,
+       0x1122F,
+       0x11232,
+       0x11234,
+       0x11235,
+       0x11236,
+       0x11238,
+       0x112DF,
+       0x112E0,
+       0x112E3,
+       0x112EB,
+       0x11301,
+       0x11302,
+       0x11304,
+       0x1133C,
+       0x1133D,
+       0x1133E,
+       0x1133F,
+       0x11340,
+       0x11341,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x11362,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x114B0,
+       0x114B1,
+       0x114B3,
+       0x114B9,
+       0x114BA,
+       0x114BB,
+       0x114BD,
+       0x114BE,
+       0x114BF,
+       0x114C1,
+       0x114C2,
+       0x114C4,
+       0x115AF,
+       0x115B0,
+       0x115B2,
+       0x115B6,
+       0x115B8,
+       0x115BC,
+       0x115BE,
+       0x115BF,
+       0x115C1,
+       0x11630,
+       0x11633,
+       0x1163B,
+       0x1163D,
+       0x1163E,
+       0x1163F,
+       0x11641,
+       0x116AB,
+       0x116AC,
+       0x116AD,
+       0x116AE,
+       0x116B0,
+       0x116B6,
+       0x116B7,
+       0x116B8,
+       0x16AF0,
+       0x16AF5,
+       0x16B30,
+       0x16B37,
+       0x16F51,
+       0x16F7F,
+       0x16F8F,
+       0x16F93,
+       0x1BC9D,
+       0x1BC9F,
+       0x1BCA0,
+       0x1BCA4,
+       0x1D165,
+       0x1D166,
+       0x1D167,
+       0x1D16A,
+       0x1D16D,
+       0x1D16E,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1E8D0,
+       0x1E8D7,
+       0x1F1E6,
+       0x1F200,
+       0xE0000,
+       0xE0100,
+       0xE01F0,
+       0xE1000
+};
+
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define PL_GCB_ENUM_COUNT 14
+
+typedef enum {
+       PL_GCB_Other = 0,
+       PL_GCB_CR = 1,
+       PL_GCB_Control = 2,
+       PL_GCB_EDGE = 3,
+       PL_GCB_Extend = 4,
+       PL_GCB_L = 5,
+       PL_GCB_LF = 6,
+       PL_GCB_LV = 7,
+       PL_GCB_LVT = 8,
+       PL_GCB_Prepend = 9,
+       PL_GCB_Regional_Indicator = 10,
+       PL_GCB_SpacingMark = 11,
+       PL_GCB_T = 12,
+       PL_GCB_V = 13
+} PL_GCB_enum;
+
+static const PL_GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for ASCII/Latin1 */
+       PL_GCB_Control,
+       PL_GCB_LF,
+       PL_GCB_Control,
+       PL_GCB_CR,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_L,
+       PL_GCB_V,
+       PL_GCB_T,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_L,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_Other,
+       PL_GCB_V,
+       PL_GCB_Other,
+       PL_GCB_T,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Regional_Indicator,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Other
+};
+
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_REGCOMP_C)
+
+static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for ASCII/Latin1 */
+       45,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x2BC,
+       0x2BD,
+       0x308,
+       0x309,
+       0x313,
+       0x314,
+       0x342,
+       0x343,
+       0x3AC,
+       0x3AD,
+       0x3AE,
+       0x3AF,
+       0x3B1,
+       0x3B2,
+       0x3B7,
+       0x3B8,
+       0x3B9,
+       0x3BA,
+       0x3C1,
+       0x3C2,
+       0x3C5,
+       0x3C6,
+       0x3C9,
+       0x3CA,
+       0x3CE,
+       0x3CF,
+       0x565,
+       0x566,
+       0x574,
+       0x575,
+       0x57E,
+       0x57F,
+       0x1F00,
+       0x1F08,
+       0x1F20,
+       0x1F28,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1F71,
+       0x1F74,
+       0x1F75,
+       0x1F7C,
+       0x1F7D
+};
+
+static const UV _Perl_Any_Folds_invlist[] = { /* for ASCII/Latin1 */
+       235,    /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x41,
+       0x5B,
+       0x61,
+       0x7B,
+       0xB5,
+       0xB6,
+       0xC0,
+       0xD7,
+       0xD8,
+       0xF7,
+       0xF8,
+       0x131,
+       0x132,
+       0x138,
+       0x139,
+       0x18D,
+       0x18E,
+       0x19B,
+       0x19C,
+       0x1AA,
+       0x1AC,
+       0x1BA,
+       0x1BC,
+       0x1BE,
+       0x1BF,
+       0x1C0,
+       0x1C4,
+       0x221,
+       0x222,
+       0x234,
+       0x23A,
+       0x255,
+       0x256,
+       0x258,
+       0x259,
+       0x25A,
+       0x25B,
+       0x25D,
+       0x260,
+       0x262,
+       0x263,
+       0x264,
+       0x265,
+       0x267,
+       0x268,
+       0x26A,
+       0x26B,
+       0x26D,
+       0x26F,
+       0x270,
+       0x271,
+       0x273,
+       0x275,
+       0x276,
+       0x27D,
+       0x27E,
+       0x280,
+       0x281,
+       0x283,
+       0x284,
+       0x287,
+       0x28D,
+       0x292,
+       0x293,
+       0x29E,
+       0x29F,
+       0x2BC,
+       0x2BD,
+       0x2BE,
+       0x2BF,
+       0x300,
+       0x302,
+       0x307,
+       0x309,
+       0x30A,
+       0x30B,
+       0x30C,
+       0x30D,
+       0x313,
+       0x314,
+       0x331,
+       0x332,
+       0x342,
+       0x343,
+       0x345,
+       0x346,
+       0x370,
+       0x374,
+       0x376,
+       0x378,
+       0x37B,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3D2,
+       0x3D5,
+       0x3F6,
+       0x3F7,
+       0x3FC,
+       0x3FD,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x561,
+       0x588,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x1D79,
+       0x1D7A,
+       0x1D7D,
+       0x1D7E,
+       0x1E00,
+       0x1E9C,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2126,
+       0x2127,
+       0x212A,
+       0x212C,
+       0x2132,
+       0x2133,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2180,
+       0x2183,
+       0x2185,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2C71,
+       0x2C72,
+       0x2C74,
+       0x2C75,
+       0x2C77,
+       0x2C7E,
+       0x2CE4,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0xA640,
+       0xA66E,
+       0xA680,
+       0xA69C,
+       0xA722,
+       0xA730,
+       0xA732,
+       0xA770,
+       0xA779,
+       0xA788,
+       0xA78B,
+       0xA78E,
+       0xA790,
+       0xA794,
+       0xA796,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0x10400,
+       0x10450,
+       0x118A0,
+       0x118E0
+};
+
+static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for ASCII/Latin1 */
+       59,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0xDF,
+       0xE0,
+       0x130,
+       0x131,
+       0x149,
+       0x14A,
+       0x1F0,
+       0x1F1,
+       0x390,
+       0x391,
+       0x3B0,
+       0x3B1,
+       0x587,
+       0x588,
+       0x1E96,
+       0x1E9B,
+       0x1E9E,
+       0x1E9F,
+       0x1F50,
+       0x1F51,
+       0x1F52,
+       0x1F53,
+       0x1F54,
+       0x1F55,
+       0x1F56,
+       0x1F57,
+       0x1F80,
+       0x1FB0,
+       0x1FB2,
+       0x1FB5,
+       0x1FB6,
+       0x1FB8,
+       0x1FBC,
+       0x1FBD,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FC8,
+       0x1FCC,
+       0x1FCD,
+       0x1FD2,
+       0x1FD4,
+       0x1FD6,
+       0x1FD8,
+       0x1FE2,
+       0x1FE5,
+       0x1FE6,
+       0x1FE8,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FF8,
+       0x1FFC,
+       0x1FFD,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18
+};
+
+#endif /* defined(PERL_IN_REGCOMP_C) */
+
+#if defined(PERL_IN_UTF8_C)
+
+static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
+       1267,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x30,
+       0x3A,
+       0x41,
+       0x5B,
+       0x5F,
+       0x60,
+       0x61,
+       0x7B,
+       0xAA,
+       0xAB,
+       0xB5,
+       0xB6,
+       0xBA,
+       0xBB,
+       0xC0,
+       0xD7,
+       0xD8,
+       0xF7,
+       0xF8,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x300,
+       0x375,
+       0x376,
+       0x378,
+       0x37B,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x483,
+       0x488,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x610,
+       0x61B,
+       0x620,
+       0x66A,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x6DD,
+       0x6DF,
+       0x6E9,
+       0x6EA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x74B,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x82E,
+       0x840,
+       0x85C,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE3B,
+       0xE40,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF18,
+       0xF1A,
+       0xF20,
+       0xF2A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF85,
+       0xF86,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x1000,
+       0x104A,
+       0x1050,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1715,
+       0x1720,
+       0x1735,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17D4,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x180B,
+       0x180E,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1946,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A1C,
+       0x1A20,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA7,
+       0x1AA8,
+       0x1AB0,
+       0x1ABE,
+       0x1B00,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1BF4,
+       0x1C00,
+       0x1C38,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C7E,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DF6,
+       0x1DFC,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x203F,
+       0x2041,
+       0x2054,
+       0x2055,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x20D0,
+       0x20DD,
+       0x20E1,
+       0x20E2,
+       0x20E5,
+       0x20F1,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D7F,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x3030,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x309B,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA62C,
+       0xA640,
+       0xA670,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6F2,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA8C5,
+       0xA8D0,
+       0xA8DA,
+       0xA8E0,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA92E,
+       0xA930,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA9C1,
+       0xA9CF,
+       0xA9DA,
+       0xA9E0,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEB,
+       0xABEC,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFC5E,
+       0xFC64,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFA,
+       0xFE00,
+       0xFE10,
+       0xFE20,
+       0xFE2E,
+       0xFE33,
+       0xFE35,
+       0xFE4D,
+       0xFE50,
+       0xFE71,
+       0xFE72,
+       0xFE73,
+       0xFE74,
+       0xFE77,
+       0xFE78,
+       0xFE79,
+       0xFE7A,
+       0xFE7B,
+       0xFE7C,
+       0xFE7D,
+       0xFE7E,
+       0xFE7F,
+       0xFEFD,
+       0xFF10,
+       0xFF1A,
+       0xFF21,
+       0xFF3B,
+       0xFF3F,
+       0xFF40,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x101FD,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102E1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE7,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11047,
+       0x11066,
+       0x11070,
+       0x1107F,
+       0x110BB,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11135,
+       0x11136,
+       0x11140,
+       0x11150,
+       0x11174,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x111C5,
+       0x111D0,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x11238,
+       0x112B0,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115C1,
+       0x11600,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF5,
+       0x16B00,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F8F,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9D,
+       0x1BC9F,
+       0x1D165,
+       0x1D16A,
+       0x1D16D,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8D0,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0100,
+       0xE01F0
+};
+
+static const UV _Perl_IDStart_invlist[] = { /* for ASCII/Latin1 */
+       1095,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x41,
+       0x5B,
+       0x5F,
+       0x60,
+       0x61,
+       0x7B,
+       0xAA,
+       0xAB,
+       0xB5,
+       0xB6,
+       0xBA,
+       0xBB,
+       0xC0,
+       0xD7,
+       0xD8,
+       0xF7,
+       0xF8,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x370,
+       0x375,
+       0x376,
+       0x378,
+       0x37B,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x620,
+       0x64B,
+       0x66E,
+       0x670,
+       0x671,
+       0x6D4,
+       0x6D5,
+       0x6D6,
+       0x6E5,
+       0x6E7,
+       0x6EE,
+       0x6F0,
+       0x6FA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x711,
+       0x712,
+       0x730,
+       0x74D,
+       0x7A6,
+       0x7B1,
+       0x7B2,
+       0x7CA,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x816,
+       0x81A,
+       0x81B,
+       0x824,
+       0x825,
+       0x828,
+       0x829,
+       0x840,
+       0x859,
+       0x8A0,
+       0x8B3,
+       0x904,
+       0x93A,
+       0x93D,
+       0x93E,
+       0x950,
+       0x951,
+       0x958,
+       0x962,
+       0x971,
+       0x981,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BD,
+       0x9BE,
+       0x9CE,
+       0x9CF,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E2,
+       0x9F0,
+       0x9F2,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA72,
+       0xA75,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABD,
+       0xABE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE2,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3D,
+       0xB3E,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB62,
+       0xB71,
+       0xB72,
+       0xB83,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBD0,
+       0xBD1,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC3E,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC62,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBD,
+       0xCBE,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE2,
+       0xCF1,
+       0xCF3,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD3E,
+       0xD4E,
+       0xD4F,
+       0xD60,
+       0xD62,
+       0xD7A,
+       0xD80,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xE01,
+       0xE31,
+       0xE32,
+       0xE33,
+       0xE40,
+       0xE47,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEB1,
+       0xEB2,
+       0xEB3,
+       0xEBD,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF88,
+       0xF8D,
+       0x1000,
+       0x102B,
+       0x103F,
+       0x1040,
+       0x1050,
+       0x1056,
+       0x105A,
+       0x105E,
+       0x1061,
+       0x1062,
+       0x1065,
+       0x1067,
+       0x106E,
+       0x1071,
+       0x1075,
+       0x1082,
+       0x108E,
+       0x108F,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1712,
+       0x1720,
+       0x1732,
+       0x1740,
+       0x1752,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1780,
+       0x17B4,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DD,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18A9,
+       0x18AA,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1950,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19C1,
+       0x19C8,
+       0x1A00,
+       0x1A17,
+       0x1A20,
+       0x1A55,
+       0x1AA7,
+       0x1AA8,
+       0x1B05,
+       0x1B34,
+       0x1B45,
+       0x1B4C,
+       0x1B83,
+       0x1BA1,
+       0x1BAE,
+       0x1BB0,
+       0x1BBA,
+       0x1BE6,
+       0x1C00,
+       0x1C24,
+       0x1C4D,
+       0x1C50,
+       0x1C5A,
+       0x1C7E,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF2,
+       0x1CF5,
+       0x1CF7,
+       0x1D00,
+       0x1DC0,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x302A,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA620,
+       0xA62A,
+       0xA62C,
+       0xA640,
+       0xA66F,
+       0xA67F,
+       0xA69E,
+       0xA6A0,
+       0xA6F0,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA823,
+       0xA840,
+       0xA874,
+       0xA882,
+       0xA8B4,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA90A,
+       0xA926,
+       0xA930,
+       0xA947,
+       0xA960,
+       0xA97D,
+       0xA984,
+       0xA9B3,
+       0xA9CF,
+       0xA9D0,
+       0xA9E0,
+       0xA9E5,
+       0xA9E6,
+       0xA9F0,
+       0xA9FA,
+       0xA9FF,
+       0xAA00,
+       0xAA29,
+       0xAA40,
+       0xAA43,
+       0xAA44,
+       0xAA4C,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAA7B,
+       0xAA7E,
+       0xAAB0,
+       0xAAB1,
+       0xAAB2,
+       0xAAB5,
+       0xAAB7,
+       0xAAB9,
+       0xAABE,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAEB,
+       0xAAF2,
+       0xAAF5,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABE3,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB1E,
+       0xFB1F,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFC5E,
+       0xFC64,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFA,
+       0xFE71,
+       0xFE72,
+       0xFE73,
+       0xFE74,
+       0xFE77,
+       0xFE78,
+       0xFE79,
+       0xFE7A,
+       0xFE7B,
+       0xFE7C,
+       0xFE7D,
+       0xFE7E,
+       0xFE7F,
+       0xFEFD,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFF9E,
+       0xFFA0,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x10376,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A01,
+       0x10A10,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11003,
+       0x11038,
+       0x11083,
+       0x110B0,
+       0x110D0,
+       0x110E9,
+       0x11103,
+       0x11127,
+       0x11150,
+       0x11173,
+       0x11176,
+       0x11177,
+       0x11183,
+       0x111B3,
+       0x111C1,
+       0x111C5,
+       0x111DA,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1122C,
+       0x112B0,
+       0x112DF,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133D,
+       0x1133E,
+       0x1135D,
+       0x11362,
+       0x11480,
+       0x114B0,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x11580,
+       0x115AF,
+       0x11600,
+       0x11630,
+       0x11644,
+       0x11645,
+       0x11680,
+       0x116AB,
+       0x118A0,
+       0x118E0,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16AD0,
+       0x16AEE,
+       0x16B00,
+       0x16B30,
+       0x16B40,
+       0x16B44,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F51,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1E800,
+       0x1E8C5,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E
+};
+
+#endif /* defined(PERL_IN_UTF8_C) */
+
+#if defined(PERL_IN_PERL_C)
+
+static const UV Sentence_Break_invlist[] = { /* for ASCII/Latin1 */
+       2835,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       0,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x9,
+       0xA,
+       0xB,
+       0xD,
+       0xE,
+       0x20,
+       0x21,
+       0x22,
+       0x23,
+       0x27,
+       0x2A,
+       0x2C,
+       0x2E,
+       0x2F,
+       0x30,
+       0x3A,
+       0x3B,
+       0x3F,
+       0x40,
+       0x41,
+       0x5B,
+       0x5C,
+       0x5D,
+       0x5E,
+       0x61,
+       0x7B,
+       0x7C,
+       0x7D,
+       0x7E,
+       0x85,
+       0x86,
+       0xA0,
+       0xA1,
+       0xAA,
+       0xAB,
+       0xAC,
+       0xAD,
+       0xAE,
+       0xB5,
+       0xB6,
+       0xBA,
+       0xBB,
+       0xBC,
+       0xC0,
+       0xD7,
+       0xD8,
+       0xDF,
+       0xF7,
+       0xF8,
+       0x100,
+       0x101,
+       0x102,
+       0x103,
+       0x104,
+       0x105,
+       0x106,
+       0x107,
+       0x108,
+       0x109,
+       0x10A,
+       0x10B,
+       0x10C,
+       0x10D,
+       0x10E,
+       0x10F,
+       0x110,
+       0x111,
+       0x112,
+       0x113,
+       0x114,
+       0x115,
+       0x116,
+       0x117,
+       0x118,
+       0x119,
+       0x11A,
+       0x11B,
+       0x11C,
+       0x11D,
+       0x11E,
+       0x11F,
+       0x120,
+       0x121,
+       0x122,
+       0x123,
+       0x124,
+       0x125,
+       0x126,
+       0x127,
+       0x128,
+       0x129,
+       0x12A,
+       0x12B,
+       0x12C,
+       0x12D,
+       0x12E,
+       0x12F,
+       0x130,
+       0x131,
+       0x132,
+       0x133,
+       0x134,
+       0x135,
+       0x136,
+       0x137,
+       0x139,
+       0x13A,
+       0x13B,
+       0x13C,
+       0x13D,
+       0x13E,
+       0x13F,
+       0x140,
+       0x141,
+       0x142,
+       0x143,
+       0x144,
+       0x145,
+       0x146,
+       0x147,
+       0x148,
+       0x14A,
+       0x14B,
+       0x14C,
+       0x14D,
+       0x14E,
+       0x14F,
+       0x150,
+       0x151,
+       0x152,
+       0x153,
+       0x154,
+       0x155,
+       0x156,
+       0x157,
+       0x158,
+       0x159,
+       0x15A,
+       0x15B,
+       0x15C,
+       0x15D,
+       0x15E,
+       0x15F,
+       0x160,
+       0x161,
+       0x162,
+       0x163,
+       0x164,
+       0x165,
+       0x166,
+       0x167,
+       0x168,
+       0x169,
+       0x16A,
+       0x16B,
+       0x16C,
+       0x16D,
+       0x16E,
+       0x16F,
+       0x170,
+       0x171,
+       0x172,
+       0x173,
+       0x174,
+       0x175,
+       0x176,
+       0x177,
+       0x178,
+       0x17A,
+       0x17B,
+       0x17C,
+       0x17D,
+       0x17E,
+       0x181,
+       0x183,
+       0x184,
+       0x185,
+       0x186,
+       0x188,
+       0x189,
+       0x18C,
+       0x18E,
+       0x192,
+       0x193,
+       0x195,
+       0x196,
+       0x199,
+       0x19C,
+       0x19E,
+       0x19F,
+       0x1A1,
+       0x1A2,
+       0x1A3,
+       0x1A4,
+       0x1A5,
+       0x1A6,
+       0x1A8,
+       0x1A9,
+       0x1AA,
+       0x1AC,
+       0x1AD,
+       0x1AE,
+       0x1B0,
+       0x1B1,
+       0x1B4,
+       0x1B5,
+       0x1B6,
+       0x1B7,
+       0x1B9,
+       0x1BB,
+       0x1BC,
+       0x1BD,
+       0x1C0,
+       0x1C4,
+       0x1C6,
+       0x1C7,
+       0x1C9,
+       0x1CA,
+       0x1CC,
+       0x1CD,
+       0x1CE,
+       0x1CF,
+       0x1D0,
+       0x1D1,
+       0x1D2,
+       0x1D3,
+       0x1D4,
+       0x1D5,
+       0x1D6,
+       0x1D7,
+       0x1D8,
+       0x1D9,
+       0x1DA,
+       0x1DB,
+       0x1DC,
+       0x1DE,
+       0x1DF,
+       0x1E0,
+       0x1E1,
+       0x1E2,
+       0x1E3,
+       0x1E4,
+       0x1E5,
+       0x1E6,
+       0x1E7,
+       0x1E8,
+       0x1E9,
+       0x1EA,
+       0x1EB,
+       0x1EC,
+       0x1ED,
+       0x1EE,
+       0x1EF,
+       0x1F1,
+       0x1F3,
+       0x1F4,
+       0x1F5,
+       0x1F6,
+       0x1F9,
+       0x1FA,
+       0x1FB,
+       0x1FC,
+       0x1FD,
+       0x1FE,
+       0x1FF,
+       0x200,
+       0x201,
+       0x202,
+       0x203,
+       0x204,
+       0x205,
+       0x206,
+       0x207,
+       0x208,
+       0x209,
+       0x20A,
+       0x20B,
+       0x20C,
+       0x20D,
+       0x20E,
+       0x20F,
+       0x210,
+       0x211,
+       0x212,
+       0x213,
+       0x214,
+       0x215,
+       0x216,
+       0x217,
+       0x218,
+       0x219,
+       0x21A,
+       0x21B,
+       0x21C,
+       0x21D,
+       0x21E,
+       0x21F,
+       0x220,
+       0x221,
+       0x222,
+       0x223,
+       0x224,
+       0x225,
+       0x226,
+       0x227,
+       0x228,
+       0x229,
+       0x22A,
+       0x22B,
+       0x22C,
+       0x22D,
+       0x22E,
+       0x22F,
+       0x230,
+       0x231,
+       0x232,
+       0x233,
+       0x23A,
+       0x23C,
+       0x23D,
+       0x23F,
+       0x241,
+       0x242,
+       0x243,
+       0x247,
+       0x248,
+       0x249,
+       0x24A,
+       0x24B,
+       0x24C,
+       0x24D,
+       0x24E,
+       0x24F,
+       0x294,
+       0x295,
+       0x2B9,
+       0x2C0,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x300,
+       0x370,
+       0x371,
+       0x372,
+       0x373,
+       0x374,
+       0x375,
+       0x376,
+       0x377,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x390,
+       0x391,
+       0x3A2,
+       0x3A3,
+       0x3AC,
+       0x3CF,
+       0x3D0,
+       0x3D2,
+       0x3D5,
+       0x3D8,
+       0x3D9,
+       0x3DA,
+       0x3DB,
+       0x3DC,
+       0x3DD,
+       0x3DE,
+       0x3DF,
+       0x3E0,
+       0x3E1,
+       0x3E2,
+       0x3E3,
+       0x3E4,
+       0x3E5,
+       0x3E6,
+       0x3E7,
+       0x3E8,
+       0x3E9,
+       0x3EA,
+       0x3EB,
+       0x3EC,
+       0x3ED,
+       0x3EE,
+       0x3EF,
+       0x3F4,
+       0x3F5,
+       0x3F6,
+       0x3F7,
+       0x3F8,
+       0x3F9,
+       0x3FB,
+       0x3FD,
+       0x430,
+       0x460,
+       0x461,
+       0x462,
+       0x463,
+       0x464,
+       0x465,
+       0x466,
+       0x467,
+       0x468,
+       0x469,
+       0x46A,
+       0x46B,
+       0x46C,
+       0x46D,
+       0x46E,
+       0x46F,
+       0x470,
+       0x471,
+       0x472,
+       0x473,
+       0x474,
+       0x475,
+       0x476,
+       0x477,
+       0x478,
+       0x479,
+       0x47A,
+       0x47B,
+       0x47C,
+       0x47D,
+       0x47E,
+       0x47F,
+       0x480,
+       0x481,
+       0x482,
+       0x483,
+       0x48A,
+       0x48B,
+       0x48C,
+       0x48D,
+       0x48E,
+       0x48F,
+       0x490,
+       0x491,
+       0x492,
+       0x493,
+       0x494,
+       0x495,
+       0x496,
+       0x497,
+       0x498,
+       0x499,
+       0x49A,
+       0x49B,
+       0x49C,
+       0x49D,
+       0x49E,
+       0x49F,
+       0x4A0,
+       0x4A1,
+       0x4A2,
+       0x4A3,
+       0x4A4,
+       0x4A5,
+       0x4A6,
+       0x4A7,
+       0x4A8,
+       0x4A9,
+       0x4AA,
+       0x4AB,
+       0x4AC,
+       0x4AD,
+       0x4AE,
+       0x4AF,
+       0x4B0,
+       0x4B1,
+       0x4B2,
+       0x4B3,
+       0x4B4,
+       0x4B5,
+       0x4B6,
+       0x4B7,
+       0x4B8,
+       0x4B9,
+       0x4BA,
+       0x4BB,
+       0x4BC,
+       0x4BD,
+       0x4BE,
+       0x4BF,
+       0x4C0,
+       0x4C2,
+       0x4C3,
+       0x4C4,
+       0x4C5,
+       0x4C6,
+       0x4C7,
+       0x4C8,
+       0x4C9,
+       0x4CA,
+       0x4CB,
+       0x4CC,
+       0x4CD,
+       0x4CE,
+       0x4D0,
+       0x4D1,
+       0x4D2,
+       0x4D3,
+       0x4D4,
+       0x4D5,
+       0x4D6,
+       0x4D7,
+       0x4D8,
+       0x4D9,
+       0x4DA,
+       0x4DB,
+       0x4DC,
+       0x4DD,
+       0x4DE,
+       0x4DF,
+       0x4E0,
+       0x4E1,
+       0x4E2,
+       0x4E3,
+       0x4E4,
+       0x4E5,
+       0x4E6,
+       0x4E7,
+       0x4E8,
+       0x4E9,
+       0x4EA,
+       0x4EB,
+       0x4EC,
+       0x4ED,
+       0x4EE,
+       0x4EF,
+       0x4F0,
+       0x4F1,
+       0x4F2,
+       0x4F3,
+       0x4F4,
+       0x4F5,
+       0x4F6,
+       0x4F7,
+       0x4F8,
+       0x4F9,
+       0x4FA,
+       0x4FB,
+       0x4FC,
+       0x4FD,
+       0x4FE,
+       0x4FF,
+       0x500,
+       0x501,
+       0x502,
+       0x503,
+       0x504,
+       0x505,
+       0x506,
+       0x507,
+       0x508,
+       0x509,
+       0x50A,
+       0x50B,
+       0x50C,
+       0x50D,
+       0x50E,
+       0x50F,
+       0x510,
+       0x511,
+       0x512,
+       0x513,
+       0x514,
+       0x515,
+       0x516,
+       0x517,
+       0x518,
+       0x519,
+       0x51A,
+       0x51B,
+       0x51C,
+       0x51D,
+       0x51E,
+       0x51F,
+       0x520,
+       0x521,
+       0x522,
+       0x523,
+       0x524,
+       0x525,
+       0x526,
+       0x527,
+       0x528,
+       0x529,
+       0x52A,
+       0x52B,
+       0x52C,
+       0x52D,
+       0x52E,
+       0x52F,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x55D,
+       0x55E,
+       0x561,
+       0x588,
+       0x589,
+       0x58A,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F4,
+       0x600,
+       0x606,
+       0x60C,
+       0x60E,
+       0x610,
+       0x61B,
+       0x61C,
+       0x61D,
+       0x61F,
+       0x620,
+       0x64B,
+       0x660,
+       0x66A,
+       0x66B,
+       0x66D,
+       0x66E,
+       0x670,
+       0x671,
+       0x6D4,
+       0x6D5,
+       0x6D6,
+       0x6DD,
+       0x6DE,
+       0x6DF,
+       0x6E5,
+       0x6E7,
+       0x6E9,
+       0x6EA,
+       0x6EE,
+       0x6F0,
+       0x6FA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x703,
+       0x70F,
+       0x710,
+       0x711,
+       0x712,
+       0x730,
+       0x74B,
+       0x74D,
+       0x7A6,
+       0x7B1,
+       0x7B2,
+       0x7C0,
+       0x7CA,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7F8,
+       0x7F9,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x816,
+       0x81A,
+       0x81B,
+       0x824,
+       0x825,
+       0x828,
+       0x829,
+       0x82E,
+       0x840,
+       0x859,
+       0x85C,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x904,
+       0x93A,
+       0x93D,
+       0x93E,
+       0x950,
+       0x951,
+       0x958,
+       0x962,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x981,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9BD,
+       0x9BE,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CE,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E2,
+       0x9E4,
+       0x9E6,
+       0x9F0,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA70,
+       0xA72,
+       0xA75,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xABD,
+       0xABE,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE2,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB3D,
+       0xB3E,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB62,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB83,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC3E,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC62,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCBD,
+       0xCBE,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE2,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD3E,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4E,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD62,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE31,
+       0xE32,
+       0xE34,
+       0xE3B,
+       0xE40,
+       0xE47,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEB1,
+       0xEB2,
+       0xEB4,
+       0xEBA,
+       0xEBB,
+       0xEBD,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF18,
+       0xF1A,
+       0xF20,
+       0xF2A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF85,
+       0xF86,
+       0xF88,
+       0xF8D,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x1000,
+       0x102B,
+       0x103F,
+       0x1040,
+       0x104A,
+       0x104C,
+       0x1050,
+       0x1056,
+       0x105A,
+       0x105E,
+       0x1061,
+       0x1062,
+       0x1065,
+       0x1067,
+       0x106E,
+       0x1071,
+       0x1075,
+       0x1082,
+       0x108E,
+       0x108F,
+       0x1090,
+       0x109A,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x1360,
+       0x1362,
+       0x1363,
+       0x1367,
+       0x1369,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166E,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x169D,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1712,
+       0x1715,
+       0x1720,
+       0x1732,
+       0x1735,
+       0x1737,
+       0x1740,
+       0x1752,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17B4,
+       0x17D4,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DD,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x1802,
+       0x1803,
+       0x1804,
+       0x1808,
+       0x1809,
+       0x180A,
+       0x180B,
+       0x180E,
+       0x180F,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18A9,
+       0x18AA,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1944,
+       0x1946,
+       0x1950,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19C1,
+       0x19C8,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A17,
+       0x1A1C,
+       0x1A20,
+       0x1A55,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A80,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA7,
+       0x1AA8,
+       0x1AAC,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B05,
+       0x1B34,
+       0x1B45,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B5C,
+       0x1B5E,
+       0x1B60,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1B83,
+       0x1BA1,
+       0x1BAE,
+       0x1BB0,
+       0x1BBA,
+       0x1BE6,
+       0x1BF4,
+       0x1C00,
+       0x1C24,
+       0x1C38,
+       0x1C3B,
+       0x1C3D,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C50,
+       0x1C5A,
+       0x1C7E,
+       0x1C80,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF2,
+       0x1CF5,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DC0,
+       0x1DF6,
+       0x1DFC,
+       0x1E00,
+       0x1E01,
+       0x1E02,
+       0x1E03,
+       0x1E04,
+       0x1E05,
+       0x1E06,
+       0x1E07,
+       0x1E08,
+       0x1E09,
+       0x1E0A,
+       0x1E0B,
+       0x1E0C,
+       0x1E0D,
+       0x1E0E,
+       0x1E0F,
+       0x1E10,
+       0x1E11,
+       0x1E12,
+       0x1E13,
+       0x1E14,
+       0x1E15,
+       0x1E16,
+       0x1E17,
+       0x1E18,
+       0x1E19,
+       0x1E1A,
+       0x1E1B,
+       0x1E1C,
+       0x1E1D,
+       0x1E1E,
+       0x1E1F,
+       0x1E20,
+       0x1E21,
+       0x1E22,
+       0x1E23,
+       0x1E24,
+       0x1E25,
+       0x1E26,
+       0x1E27,
+       0x1E28,
+       0x1E29,
+       0x1E2A,
+       0x1E2B,
+       0x1E2C,
+       0x1E2D,
+       0x1E2E,
+       0x1E2F,
+       0x1E30,
+       0x1E31,
+       0x1E32,
+       0x1E33,
+       0x1E34,
+       0x1E35,
+       0x1E36,
+       0x1E37,
+       0x1E38,
+       0x1E39,
+       0x1E3A,
+       0x1E3B,
+       0x1E3C,
+       0x1E3D,
+       0x1E3E,
+       0x1E3F,
+       0x1E40,
+       0x1E41,
+       0x1E42,
+       0x1E43,
+       0x1E44,
+       0x1E45,
+       0x1E46,
+       0x1E47,
+       0x1E48,
+       0x1E49,
+       0x1E4A,
+       0x1E4B,
+       0x1E4C,
+       0x1E4D,
+       0x1E4E,
+       0x1E4F,
+       0x1E50,
+       0x1E51,
+       0x1E52,
+       0x1E53,
+       0x1E54,
+       0x1E55,
+       0x1E56,
+       0x1E57,
+       0x1E58,
+       0x1E59,
+       0x1E5A,
+       0x1E5B,
+       0x1E5C,
+       0x1E5D,
+       0x1E5E,
+       0x1E5F,
+       0x1E60,
+       0x1E61,
+       0x1E62,
+       0x1E63,
+       0x1E64,
+       0x1E65,
+       0x1E66,
+       0x1E67,
+       0x1E68,
+       0x1E69,
+       0x1E6A,
+       0x1E6B,
+       0x1E6C,
+       0x1E6D,
+       0x1E6E,
+       0x1E6F,
+       0x1E70,
+       0x1E71,
+       0x1E72,
+       0x1E73,
+       0x1E74,
+       0x1E75,
+       0x1E76,
+       0x1E77,
+       0x1E78,
+       0x1E79,
+       0x1E7A,
+       0x1E7B,
+       0x1E7C,
+       0x1E7D,
+       0x1E7E,
+       0x1E7F,
+       0x1E80,
+       0x1E81,
+       0x1E82,
+       0x1E83,
+       0x1E84,
+       0x1E85,
+       0x1E86,
+       0x1E87,
+       0x1E88,
+       0x1E89,
+       0x1E8A,
+       0x1E8B,
+       0x1E8C,
+       0x1E8D,
+       0x1E8E,
+       0x1E8F,
+       0x1E90,
+       0x1E91,
+       0x1E92,
+       0x1E93,
+       0x1E94,
+       0x1E95,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1EA1,
+       0x1EA2,
+       0x1EA3,
+       0x1EA4,
+       0x1EA5,
+       0x1EA6,
+       0x1EA7,
+       0x1EA8,
+       0x1EA9,
+       0x1EAA,
+       0x1EAB,
+       0x1EAC,
+       0x1EAD,
+       0x1EAE,
+       0x1EAF,
+       0x1EB0,
+       0x1EB1,
+       0x1EB2,
+       0x1EB3,
+       0x1EB4,
+       0x1EB5,
+       0x1EB6,
+       0x1EB7,
+       0x1EB8,
+       0x1EB9,
+       0x1EBA,
+       0x1EBB,
+       0x1EBC,
+       0x1EBD,
+       0x1EBE,
+       0x1EBF,
+       0x1EC0,
+       0x1EC1,
+       0x1EC2,
+       0x1EC3,
+       0x1EC4,
+       0x1EC5,
+       0x1EC6,
+       0x1EC7,
+       0x1EC8,
+       0x1EC9,
+       0x1ECA,
+       0x1ECB,
+       0x1ECC,
+       0x1ECD,
+       0x1ECE,
+       0x1ECF,
+       0x1ED0,
+       0x1ED1,
+       0x1ED2,
+       0x1ED3,
+       0x1ED4,
+       0x1ED5,
+       0x1ED6,
+       0x1ED7,
+       0x1ED8,
+       0x1ED9,
+       0x1EDA,
+       0x1EDB,
+       0x1EDC,
+       0x1EDD,
+       0x1EDE,
+       0x1EDF,
+       0x1EE0,
+       0x1EE1,
+       0x1EE2,
+       0x1EE3,
+       0x1EE4,
+       0x1EE5,
+       0x1EE6,
+       0x1EE7,
+       0x1EE8,
+       0x1EE9,
+       0x1EEA,
+       0x1EEB,
+       0x1EEC,
+       0x1EED,
+       0x1EEE,
+       0x1EEF,
+       0x1EF0,
+       0x1EF1,
+       0x1EF2,
+       0x1EF3,
+       0x1EF4,
+       0x1EF5,
+       0x1EF6,
+       0x1EF7,
+       0x1EF8,
+       0x1EF9,
+       0x1EFA,
+       0x1EFB,
+       0x1EFC,
+       0x1EFD,
+       0x1EFE,
+       0x1EFF,
+       0x1F08,
+       0x1F10,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F28,
+       0x1F30,
+       0x1F38,
+       0x1F40,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1F7E,
+       0x1F80,
+       0x1F88,
+       0x1F90,
+       0x1F98,
+       0x1FA0,
+       0x1FA8,
+       0x1FB0,
+       0x1FB5,
+       0x1FB6,
+       0x1FB8,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FC8,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FD8,
+       0x1FDC,
+       0x1FE0,
+       0x1FE8,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FF8,
+       0x1FFD,
+       0x2000,
+       0x200B,
+       0x200C,
+       0x200E,
+       0x2010,
+       0x2013,
+       0x2015,
+       0x2018,
+       0x2020,
+       0x2024,
+       0x2025,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x2030,
+       0x2039,
+       0x203B,
+       0x203C,
+       0x203E,
+       0x2045,
+       0x2047,
+       0x204A,
+       0x205F,
+       0x2060,
+       0x2065,
+       0x2066,
+       0x2070,
+       0x2071,
+       0x2072,
+       0x207D,
+       0x207F,
+       0x2080,
+       0x208D,
+       0x208F,
+       0x2090,
+       0x209D,
+       0x20D0,
+       0x20F1,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x210B,
+       0x210E,
+       0x2110,
+       0x2113,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x2130,
+       0x2134,
+       0x2135,
+       0x2139,
+       0x213A,
+       0x213C,
+       0x213E,
+       0x2140,
+       0x2145,
+       0x2146,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2170,
+       0x2180,
+       0x2183,
+       0x2184,
+       0x2185,
+       0x2189,
+       0x2308,
+       0x230C,
+       0x2329,
+       0x232B,
+       0x24B6,
+       0x24D0,
+       0x24EA,
+       0x275B,
+       0x2761,
+       0x2768,
+       0x2776,
+       0x27C5,
+       0x27C7,
+       0x27E6,
+       0x27F0,
+       0x2983,
+       0x2999,
+       0x29D8,
+       0x29DC,
+       0x29FC,
+       0x29FE,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2C61,
+       0x2C62,
+       0x2C65,
+       0x2C67,
+       0x2C68,
+       0x2C69,
+       0x2C6A,
+       0x2C6B,
+       0x2C6C,
+       0x2C6D,
+       0x2C71,
+       0x2C72,
+       0x2C73,
+       0x2C75,
+       0x2C76,
+       0x2C7E,
+       0x2C81,
+       0x2C82,
+       0x2C83,
+       0x2C84,
+       0x2C85,
+       0x2C86,
+       0x2C87,
+       0x2C88,
+       0x2C89,
+       0x2C8A,
+       0x2C8B,
+       0x2C8C,
+       0x2C8D,
+       0x2C8E,
+       0x2C8F,
+       0x2C90,
+       0x2C91,
+       0x2C92,
+       0x2C93,
+       0x2C94,
+       0x2C95,
+       0x2C96,
+       0x2C97,
+       0x2C98,
+       0x2C99,
+       0x2C9A,
+       0x2C9B,
+       0x2C9C,
+       0x2C9D,
+       0x2C9E,
+       0x2C9F,
+       0x2CA0,
+       0x2CA1,
+       0x2CA2,
+       0x2CA3,
+       0x2CA4,
+       0x2CA5,
+       0x2CA6,
+       0x2CA7,
+       0x2CA8,
+       0x2CA9,
+       0x2CAA,
+       0x2CAB,
+       0x2CAC,
+       0x2CAD,
+       0x2CAE,
+       0x2CAF,
+       0x2CB0,
+       0x2CB1,
+       0x2CB2,
+       0x2CB3,
+       0x2CB4,
+       0x2CB5,
+       0x2CB6,
+       0x2CB7,
+       0x2CB8,
+       0x2CB9,
+       0x2CBA,
+       0x2CBB,
+       0x2CBC,
+       0x2CBD,
+       0x2CBE,
+       0x2CBF,
+       0x2CC0,
+       0x2CC1,
+       0x2CC2,
+       0x2CC3,
+       0x2CC4,
+       0x2CC5,
+       0x2CC6,
+       0x2CC7,
+       0x2CC8,
+       0x2CC9,
+       0x2CCA,
+       0x2CCB,
+       0x2CCC,
+       0x2CCD,
+       0x2CCE,
+       0x2CCF,
+       0x2CD0,
+       0x2CD1,
+       0x2CD2,
+       0x2CD3,
+       0x2CD4,
+       0x2CD5,
+       0x2CD6,
+       0x2CD7,
+       0x2CD8,
+       0x2CD9,
+       0x2CDA,
+       0x2CDB,
+       0x2CDC,
+       0x2CDD,
+       0x2CDE,
+       0x2CDF,
+       0x2CE0,
+       0x2CE1,
+       0x2CE2,
+       0x2CE3,
+       0x2CE5,
+       0x2CEB,
+       0x2CEC,
+       0x2CED,
+       0x2CEE,
+       0x2CEF,
+       0x2CF2,
+       0x2CF3,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D7F,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E0E,
+       0x2E1C,
+       0x2E1E,
+       0x2E20,
+       0x2E2A,
+       0x2E2E,
+       0x2E2F,
+       0x2E30,
+       0x2E3C,
+       0x2E3D,
+       0x2E42,
+       0x2E43,
+       0x3000,
+       0x3001,
+       0x3002,
+       0x3003,
+       0x3005,
+       0x3008,
+       0x3012,
+       0x3014,
+       0x301C,
+       0x301D,
+       0x3020,
+       0x3021,
+       0x302A,
+       0x3030,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x309B,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA4FF,
+       0xA500,
+       0xA60D,
+       0xA60E,
+       0xA610,
+       0xA620,
+       0xA62A,
+       0xA62C,
+       0xA640,
+       0xA641,
+       0xA642,
+       0xA643,
+       0xA644,
+       0xA645,
+       0xA646,
+       0xA647,
+       0xA648,
+       0xA649,
+       0xA64A,
+       0xA64B,
+       0xA64C,
+       0xA64D,
+       0xA64E,
+       0xA64F,
+       0xA650,
+       0xA651,
+       0xA652,
+       0xA653,
+       0xA654,
+       0xA655,
+       0xA656,
+       0xA657,
+       0xA658,
+       0xA659,
+       0xA65A,
+       0xA65B,
+       0xA65C,
+       0xA65D,
+       0xA65E,
+       0xA65F,
+       0xA660,
+       0xA661,
+       0xA662,
+       0xA663,
+       0xA664,
+       0xA665,
+       0xA666,
+       0xA667,
+       0xA668,
+       0xA669,
+       0xA66A,
+       0xA66B,
+       0xA66C,
+       0xA66D,
+       0xA66E,
+       0xA66F,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA680,
+       0xA681,
+       0xA682,
+       0xA683,
+       0xA684,
+       0xA685,
+       0xA686,
+       0xA687,
+       0xA688,
+       0xA689,
+       0xA68A,
+       0xA68B,
+       0xA68C,
+       0xA68D,
+       0xA68E,
+       0xA68F,
+       0xA690,
+       0xA691,
+       0xA692,
+       0xA693,
+       0xA694,
+       0xA695,
+       0xA696,
+       0xA697,
+       0xA698,
+       0xA699,
+       0xA69A,
+       0xA69B,
+       0xA69E,
+       0xA69F,
+       0xA6A0,
+       0xA6F0,
+       0xA6F2,
+       0xA6F3,
+       0xA6F4,
+       0xA6F7,
+       0xA6F8,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA723,
+       0xA724,
+       0xA725,
+       0xA726,
+       0xA727,
+       0xA728,
+       0xA729,
+       0xA72A,
+       0xA72B,
+       0xA72C,
+       0xA72D,
+       0xA72E,
+       0xA72F,
+       0xA732,
+       0xA733,
+       0xA734,
+       0xA735,
+       0xA736,
+       0xA737,
+       0xA738,
+       0xA739,
+       0xA73A,
+       0xA73B,
+       0xA73C,
+       0xA73D,
+       0xA73E,
+       0xA73F,
+       0xA740,
+       0xA741,
+       0xA742,
+       0xA743,
+       0xA744,
+       0xA745,
+       0xA746,
+       0xA747,
+       0xA748,
+       0xA749,
+       0xA74A,
+       0xA74B,
+       0xA74C,
+       0xA74D,
+       0xA74E,
+       0xA74F,
+       0xA750,
+       0xA751,
+       0xA752,
+       0xA753,
+       0xA754,
+       0xA755,
+       0xA756,
+       0xA757,
+       0xA758,
+       0xA759,
+       0xA75A,
+       0xA75B,
+       0xA75C,
+       0xA75D,
+       0xA75E,
+       0xA75F,
+       0xA760,
+       0xA761,
+       0xA762,
+       0xA763,
+       0xA764,
+       0xA765,
+       0xA766,
+       0xA767,
+       0xA768,
+       0xA769,
+       0xA76A,
+       0xA76B,
+       0xA76C,
+       0xA76D,
+       0xA76E,
+       0xA76F,
+       0xA779,
+       0xA77A,
+       0xA77B,
+       0xA77C,
+       0xA77D,
+       0xA77F,
+       0xA780,
+       0xA781,
+       0xA782,
+       0xA783,
+       0xA784,
+       0xA785,
+       0xA786,
+       0xA787,
+       0xA788,
+       0xA789,
+       0xA78B,
+       0xA78C,
+       0xA78D,
+       0xA78E,
+       0xA78F,
+       0xA790,
+       0xA791,
+       0xA792,
+       0xA793,
+       0xA796,
+       0xA797,
+       0xA798,
+       0xA799,
+       0xA79A,
+       0xA79B,
+       0xA79C,
+       0xA79D,
+       0xA79E,
+       0xA79F,
+       0xA7A0,
+       0xA7A1,
+       0xA7A2,
+       0xA7A3,
+       0xA7A4,
+       0xA7A5,
+       0xA7A6,
+       0xA7A7,
+       0xA7A8,
+       0xA7A9,
+       0xA7AA,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA7F8,
+       0xA7FB,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA823,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA876,
+       0xA878,
+       0xA880,
+       0xA882,
+       0xA8B4,
+       0xA8C5,
+       0xA8CE,
+       0xA8D0,
+       0xA8DA,
+       0xA8E0,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA90A,
+       0xA926,
+       0xA92E,
+       0xA92F,
+       0xA930,
+       0xA947,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA984,
+       0xA9B3,
+       0xA9C1,
+       0xA9C8,
+       0xA9CA,
+       0xA9CF,
+       0xA9D0,
+       0xA9DA,
+       0xA9E0,
+       0xA9E5,
+       0xA9E6,
+       0xA9F0,
+       0xA9FA,
+       0xA9FF,
+       0xAA00,
+       0xAA29,
+       0xAA37,
+       0xAA40,
+       0xAA43,
+       0xAA44,
+       0xAA4C,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA5D,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAA7B,
+       0xAA7E,
+       0xAAB0,
+       0xAAB1,
+       0xAAB2,
+       0xAAB5,
+       0xAAB7,
+       0xAAB9,
+       0xAABE,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAEB,
+       0xAAF0,
+       0xAAF2,
+       0xAAF5,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABE3,
+       0xABEB,
+       0xABEC,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB1E,
+       0xFB1F,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD40,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE00,
+       0xFE10,
+       0xFE12,
+       0xFE13,
+       0xFE14,
+       0xFE17,
+       0xFE19,
+       0xFE20,
+       0xFE2E,
+       0xFE31,
+       0xFE33,
+       0xFE35,
+       0xFE45,
+       0xFE47,
+       0xFE49,
+       0xFE50,
+       0xFE52,
+       0xFE53,
+       0xFE55,
+       0xFE56,
+       0xFE58,
+       0xFE59,
+       0xFE5F,
+       0xFE63,
+       0xFE64,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFEFF,
+       0xFF00,
+       0xFF01,
+       0xFF02,
+       0xFF08,
+       0xFF0A,
+       0xFF0C,
+       0xFF0E,
+       0xFF0F,
+       0xFF1A,
+       0xFF1B,
+       0xFF1F,
+       0xFF20,
+       0xFF21,
+       0xFF3B,
+       0xFF3C,
+       0xFF3D,
+       0xFF3E,
+       0xFF41,
+       0xFF5B,
+       0xFF5C,
+       0xFF5D,
+       0xFF5E,
+       0xFF5F,
+       0xFF61,
+       0xFF62,
+       0xFF64,
+       0xFF65,
+       0xFF66,
+       0xFF9E,
+       0xFFA0,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0xFFF9,
+       0xFFFC,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x101FD,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102E1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x10376,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x10428,
+       0x10450,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A01,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A10,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10A56,
+       0x10A58,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10AE7,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11003,
+       0x11038,
+       0x11047,
+       0x11049,
+       0x11066,
+       0x11070,
+       0x1107F,
+       0x11083,
+       0x110B0,
+       0x110BB,
+       0x110BD,
+       0x110BE,
+       0x110C2,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11103,
+       0x11127,
+       0x11135,
+       0x11136,
+       0x11140,
+       0x11141,
+       0x11144,
+       0x11150,
+       0x11173,
+       0x11174,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x11183,
+       0x111B3,
+       0x111C1,
+       0x111C5,
+       0x111C7,
+       0x111CD,
+       0x111CE,
+       0x111D0,
+       0x111DA,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1122C,
+       0x11238,
+       0x1123A,
+       0x1123B,
+       0x1123D,
+       0x112B0,
+       0x112DF,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x1133D,
+       0x1133E,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11362,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114B0,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115AF,
+       0x115B6,
+       0x115B8,
+       0x115C1,
+       0x115C2,
+       0x115C4,
+       0x115C9,
+       0x115CA,
+       0x11600,
+       0x11630,
+       0x11641,
+       0x11643,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116AB,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118C0,
+       0x118E0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16A6E,
+       0x16A70,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF5,
+       0x16AF6,
+       0x16B00,
+       0x16B30,
+       0x16B37,
+       0x16B39,
+       0x16B40,
+       0x16B44,
+       0x16B45,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F51,
+       0x16F7F,
+       0x16F8F,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9D,
+       0x1BC9F,
+       0x1BCA0,
+       0x1BCA4,
+       0x1D165,
+       0x1D16A,
+       0x1D16D,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1D400,
+       0x1D41A,
+       0x1D434,
+       0x1D44E,
+       0x1D455,
+       0x1D456,
+       0x1D468,
+       0x1D482,
+       0x1D49C,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4B6,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D4D0,
+       0x1D4EA,
+       0x1D504,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D538,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D56C,
+       0x1D586,
+       0x1D5A0,
+       0x1D5BA,
+       0x1D5D4,
+       0x1D5EE,
+       0x1D608,
+       0x1D622,
+       0x1D63C,
+       0x1D656,
+       0x1D670,
+       0x1D68A,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6E2,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D71C,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D756,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D790,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CA,
+       0x1D7CB,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8D0,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x1F676,
+       0x1F679,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0001,
+       0xE0002,
+       0xE0020,
+       0xE0080,
+       0xE0100,
+       0xE01F0
+};
+
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define PL_SB_ENUM_COUNT 16
+
+typedef enum {
+       PL_SB_Other = 0,
+       PL_SB_ATerm = 1,
+       PL_SB_CR = 2,
+       PL_SB_Close = 3,
+       PL_SB_EDGE = 4,
+       PL_SB_Extend = 5,
+       PL_SB_Format = 6,
+       PL_SB_LF = 7,
+       PL_SB_Lower = 8,
+       PL_SB_Numeric = 9,
+       PL_SB_OLetter = 10,
+       PL_SB_SContinue = 11,
+       PL_SB_STerm = 12,
+       PL_SB_Sep = 13,
+       PL_SB_Sp = 14,
+       PL_SB_Upper = 15
+} PL_SB_enum;
+
+static const PL_SB_enum Sentence_Break_invmap[] = { /* for ASCII/Latin1 */
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_LF,
+       PL_SB_Sp,
+       PL_SB_CR,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_STerm,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_ATerm,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Sep,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Close,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Numeric,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Sp,
+       PL_SB_OLetter,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_Format,
+       PL_SB_Extend,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_ATerm,
+       PL_SB_Other,
+       PL_SB_Sep,
+       PL_SB_Format,
+       PL_SB_Sp,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Extend,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_ATerm,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_SContinue,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_ATerm,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_STerm,
+       PL_SB_Close,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Format,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other
+};
+
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_REGCOMP_C)
+
+static const UV UpperLatin1_invlist[] = { /* for ASCII/Latin1 */
+       3,      /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x80,
+       0x100
+};
+
+#endif /* defined(PERL_IN_REGCOMP_C) */
+
+#if defined(PERL_IN_PERL_C)
+
 static const UV VertSpace_invlist[] = { /* for ASCII/Latin1 */
        7,      /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       10,
-       14,
-       133,
-       134,
-       8232,
-       8234
+       0x0,
+       0xA,
+       0xE,
+       0x85,
+       0x86,
+       0x2028,
+       0x202A
+};
+
+static const UV Word_Break_invlist[] = { /* for ASCII/Latin1 */
+       1480,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       0,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0xA,
+       0xB,
+       0xD,
+       0xE,
+       0x22,
+       0x23,
+       0x27,
+       0x28,
+       0x2C,
+       0x2D,
+       0x2E,
+       0x2F,
+       0x30,
+       0x3A,
+       0x3B,
+       0x3C,
+       0x41,
+       0x5B,
+       0x5F,
+       0x60,
+       0x61,
+       0x7B,
+       0x85,
+       0x86,
+       0xAA,
+       0xAB,
+       0xAD,
+       0xAE,
+       0xB5,
+       0xB6,
+       0xB7,
+       0xB8,
+       0xBA,
+       0xBB,
+       0xC0,
+       0xD7,
+       0xD8,
+       0xF7,
+       0xF8,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2D7,
+       0x2D8,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x300,
+       0x370,
+       0x375,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x483,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x589,
+       0x58A,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x5F4,
+       0x5F5,
+       0x600,
+       0x606,
+       0x60C,
+       0x60E,
+       0x610,
+       0x61B,
+       0x61C,
+       0x61D,
+       0x620,
+       0x64B,
+       0x660,
+       0x66A,
+       0x66B,
+       0x66C,
+       0x66D,
+       0x66E,
+       0x670,
+       0x671,
+       0x6D4,
+       0x6D5,
+       0x6D6,
+       0x6DD,
+       0x6DE,
+       0x6DF,
+       0x6E5,
+       0x6E7,
+       0x6E9,
+       0x6EA,
+       0x6EE,
+       0x6F0,
+       0x6FA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x70F,
+       0x710,
+       0x711,
+       0x712,
+       0x730,
+       0x74B,
+       0x74D,
+       0x7A6,
+       0x7B1,
+       0x7B2,
+       0x7C0,
+       0x7CA,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7F8,
+       0x7F9,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x816,
+       0x81A,
+       0x81B,
+       0x824,
+       0x825,
+       0x828,
+       0x829,
+       0x82E,
+       0x840,
+       0x859,
+       0x85C,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x904,
+       0x93A,
+       0x93D,
+       0x93E,
+       0x950,
+       0x951,
+       0x958,
+       0x962,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x981,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9BD,
+       0x9BE,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CE,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E2,
+       0x9E4,
+       0x9E6,
+       0x9F0,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA70,
+       0xA72,
+       0xA75,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xABD,
+       0xABE,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE2,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB3D,
+       0xB3E,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB62,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB83,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC3E,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC62,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCBD,
+       0xCBE,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE2,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD3E,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4E,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD62,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE31,
+       0xE32,
+       0xE34,
+       0xE3B,
+       0xE47,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xEB1,
+       0xEB2,
+       0xEB4,
+       0xEBA,
+       0xEBB,
+       0xEBD,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xF00,
+       0xF01,
+       0xF18,
+       0xF1A,
+       0xF20,
+       0xF2A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF85,
+       0xF86,
+       0xF88,
+       0xF8D,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x102B,
+       0x103F,
+       0x1040,
+       0x104A,
+       0x1056,
+       0x105A,
+       0x105E,
+       0x1061,
+       0x1062,
+       0x1065,
+       0x1067,
+       0x106E,
+       0x1071,
+       0x1075,
+       0x1082,
+       0x108E,
+       0x108F,
+       0x1090,
+       0x109A,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1712,
+       0x1715,
+       0x1720,
+       0x1732,
+       0x1735,
+       0x1740,
+       0x1752,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x17B4,
+       0x17D4,
+       0x17DD,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x180B,
+       0x180E,
+       0x180F,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18A9,
+       0x18AA,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1946,
+       0x1950,
+       0x19B0,
+       0x19C1,
+       0x19C8,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A17,
+       0x1A1C,
+       0x1A55,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A80,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B05,
+       0x1B34,
+       0x1B45,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1B83,
+       0x1BA1,
+       0x1BAE,
+       0x1BB0,
+       0x1BBA,
+       0x1BE6,
+       0x1BF4,
+       0x1C00,
+       0x1C24,
+       0x1C38,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C50,
+       0x1C5A,
+       0x1C7E,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF2,
+       0x1CF5,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DC0,
+       0x1DF6,
+       0x1DFC,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x200C,
+       0x200E,
+       0x2010,
+       0x2018,
+       0x201A,
+       0x2024,
+       0x2025,
+       0x2027,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x203F,
+       0x2041,
+       0x2044,
+       0x2045,
+       0x2054,
+       0x2055,
+       0x2060,
+       0x2065,
+       0x2066,
+       0x2070,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x20D0,
+       0x20F1,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D7F,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x3005,
+       0x3006,
+       0x302A,
+       0x3030,
+       0x3031,
+       0x3036,
+       0x303B,
+       0x303D,
+       0x3099,
+       0x309B,
+       0x309D,
+       0x30A0,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x32D0,
+       0x32FF,
+       0x3300,
+       0x3358,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA620,
+       0xA62A,
+       0xA62C,
+       0xA640,
+       0xA66F,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6A0,
+       0xA6F0,
+       0xA6F2,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA823,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA882,
+       0xA8B4,
+       0xA8C5,
+       0xA8D0,
+       0xA8DA,
+       0xA8E0,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA90A,
+       0xA926,
+       0xA92E,
+       0xA930,
+       0xA947,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA984,
+       0xA9B3,
+       0xA9C1,
+       0xA9CF,
+       0xA9D0,
+       0xA9DA,
+       0xA9E5,
+       0xA9E6,
+       0xA9F0,
+       0xA9FA,
+       0xAA00,
+       0xAA29,
+       0xAA37,
+       0xAA40,
+       0xAA43,
+       0xAA44,
+       0xAA4C,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA7B,
+       0xAA7E,
+       0xAAB0,
+       0xAAB1,
+       0xAAB2,
+       0xAAB5,
+       0xAAB7,
+       0xAAB9,
+       0xAABE,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAE0,
+       0xAAEB,
+       0xAAF0,
+       0xAAF2,
+       0xAAF5,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABE3,
+       0xABEB,
+       0xABEC,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB1E,
+       0xFB1F,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFB50,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE00,
+       0xFE10,
+       0xFE11,
+       0xFE13,
+       0xFE14,
+       0xFE15,
+       0xFE20,
+       0xFE2E,
+       0xFE33,
+       0xFE35,
+       0xFE4D,
+       0xFE50,
+       0xFE51,
+       0xFE52,
+       0xFE53,
+       0xFE54,
+       0xFE55,
+       0xFE56,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFEFF,
+       0xFF00,
+       0xFF07,
+       0xFF08,
+       0xFF0C,
+       0xFF0D,
+       0xFF0E,
+       0xFF0F,
+       0xFF1A,
+       0xFF1B,
+       0xFF1C,
+       0xFF21,
+       0xFF3B,
+       0xFF3F,
+       0xFF40,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFF9E,
+       0xFFA0,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0xFFF9,
+       0xFFFC,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x101FD,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102E1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x10376,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A01,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A10,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10AE7,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11003,
+       0x11038,
+       0x11047,
+       0x11066,
+       0x11070,
+       0x1107F,
+       0x11083,
+       0x110B0,
+       0x110BB,
+       0x110BD,
+       0x110BE,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11103,
+       0x11127,
+       0x11135,
+       0x11136,
+       0x11140,
+       0x11150,
+       0x11173,
+       0x11174,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x11183,
+       0x111B3,
+       0x111C1,
+       0x111C5,
+       0x111D0,
+       0x111DA,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1122C,
+       0x11238,
+       0x112B0,
+       0x112DF,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x1133D,
+       0x1133E,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11362,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114B0,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115AF,
+       0x115B6,
+       0x115B8,
+       0x115C1,
+       0x11600,
+       0x11630,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116AB,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118E0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF5,
+       0x16B00,
+       0x16B30,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F51,
+       0x16F7F,
+       0x16F8F,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B001,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9D,
+       0x1BC9F,
+       0x1BCA0,
+       0x1BCA4,
+       0x1D165,
+       0x1D16A,
+       0x1D16D,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8D0,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x1F1E6,
+       0x1F200,
+       0xE0001,
+       0xE0002,
+       0xE0020,
+       0xE0080,
+       0xE0100,
+       0xE01F0
 };
 
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define PL_WB_ENUM_COUNT 19
+
+typedef enum {
+       PL_WB_Other = 0,
+       PL_WB_ALetter = 1,
+       PL_WB_CR = 2,
+       PL_WB_Double_Quote = 3,
+       PL_WB_EDGE = 4,
+       PL_WB_Extend = 5,
+       PL_WB_ExtendNumLet = 6,
+       PL_WB_Format = 7,
+       PL_WB_Hebrew_Letter = 8,
+       PL_WB_Katakana = 9,
+       PL_WB_LF = 10,
+       PL_WB_MidLetter = 11,
+       PL_WB_MidNum = 12,
+       PL_WB_MidNumLet = 13,
+       PL_WB_Newline = 14,
+       PL_WB_Numeric = 15,
+       PL_WB_Regional_Indicator = 16,
+       PL_WB_Single_Quote = 17,
+       PL_WB_UNKNOWN = 18
+} PL_WB_enum;
+
+static const PL_WB_enum Word_Break_invmap[] = { /* for ASCII/Latin1 */
+       PL_WB_Other,
+       PL_WB_LF,
+       PL_WB_Newline,
+       PL_WB_CR,
+       PL_WB_Other,
+       PL_WB_Double_Quote,
+       PL_WB_Other,
+       PL_WB_Single_Quote,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_MidLetter,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Newline,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_MidNum,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_MidLetter,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_ALetter,
+       PL_WB_MidLetter,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Numeric,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_Newline,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Extend,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_MidLetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Format,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Regional_Indicator,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other
+};
+
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_PERL_C)
+
 static const UV XPerlSpace_invlist[] = { /* for ASCII/Latin1 */
        21,     /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       9,
-       14,
-       32,
-       33,
-       133,
-       134,
-       160,
-       161,
-       5760,
-       5761,
-       8192,
-       8203,
-       8232,
-       8234,
-       8239,
-       8240,
-       8287,
-       8288,
-       12288,
-       12289
+       0x0,
+       0x9,
+       0xE,
+       0x20,
+       0x21,
+       0x85,
+       0x86,
+       0xA0,
+       0xA1,
+       0x1680,
+       0x1681,
+       0x2000,
+       0x200B,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x2030,
+       0x205F,
+       0x2060,
+       0x3000,
+       0x3001
 };
 
 static const UV XPosixAlnum_invlist[] = { /* for ASCII/Latin1 */
@@ -351,1267 +14825,1267 @@ static const UV XPosixAlnum_invlist[] = { /* for ASCII/Latin1 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       48,
-       58,
-       65,
-       91,
-       97,
-       123,
-       170,
-       171,
-       181,
-       182,
-       186,
-       187,
-       192,
-       215,
-       216,
-       247,
-       248,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       837,
-       838,
-       880,
-       885,
-       886,
-       888,
-       890,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1456,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1480,
-       1488,
-       1515,
-       1520,
-       1523,
-       1552,
-       1563,
-       1568,
-       1624,
-       1625,
-       1642,
-       1646,
-       1748,
-       1749,
-       1757,
-       1761,
-       1769,
-       1773,
-       1789,
-       1791,
-       1792,
-       1808,
-       1856,
-       1869,
-       1970,
-       1984,
-       2027,
-       2036,
-       2038,
-       2042,
-       2043,
-       2048,
-       2072,
-       2074,
-       2093,
-       2112,
-       2137,
-       2208,
-       2227,
-       2276,
-       2282,
-       2288,
-       2364,
-       2365,
-       2381,
-       2382,
-       2385,
-       2389,
-       2404,
-       2406,
-       2416,
-       2417,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2493,
-       2501,
-       2503,
-       2505,
-       2507,
-       2509,
-       2510,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2546,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2637,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2749,
-       2758,
-       2759,
-       2762,
-       2763,
-       2765,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2800,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2877,
-       2885,
-       2887,
-       2889,
-       2891,
-       2893,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2928,
-       2929,
-       2930,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3021,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3056,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3149,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3261,
-       3269,
-       3270,
-       3273,
-       3274,
-       3277,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3405,
-       3406,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3440,
-       3450,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3572,
-       3585,
-       3643,
-       3648,
-       3655,
-       3661,
-       3662,
-       3664,
-       3674,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3789,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3841,
-       3872,
-       3882,
-       3904,
-       3912,
-       3913,
-       3949,
-       3953,
-       3970,
-       3976,
-       3992,
-       3993,
-       4029,
-       4096,
-       4151,
-       4152,
-       4153,
-       4155,
-       4170,
-       4176,
-       4195,
-       4197,
-       4201,
-       4206,
-       4231,
-       4238,
-       4239,
-       4240,
-       4250,
-       4252,
-       4254,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4959,
-       4960,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5908,
-       5920,
-       5940,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6068,
-       6070,
-       6089,
-       6103,
-       6104,
-       6108,
-       6109,
-       6112,
-       6122,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6457,
-       6470,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6618,
-       6656,
-       6684,
-       6688,
-       6751,
-       6753,
-       6773,
-       6784,
-       6794,
-       6800,
-       6810,
-       6823,
-       6824,
-       6912,
-       6964,
-       6965,
-       6980,
-       6981,
-       6988,
-       6992,
-       7002,
-       7040,
-       7082,
-       7084,
-       7142,
-       7143,
-       7154,
-       7168,
-       7222,
-       7232,
-       7242,
-       7245,
-       7294,
-       7401,
-       7405,
-       7406,
-       7412,
-       7413,
-       7415,
-       7424,
-       7616,
-       7655,
-       7669,
-       7680,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11648,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11776,
-       11823,
-       11824,
-       12293,
-       12296,
-       12321,
-       12330,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42540,
-       42560,
-       42607,
-       42612,
-       42620,
-       42623,
-       42654,
-       42655,
-       42736,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43010,
-       43011,
-       43014,
-       43015,
-       43019,
-       43020,
-       43048,
-       43072,
-       43124,
-       43136,
-       43204,
-       43216,
-       43226,
-       43250,
-       43256,
-       43259,
-       43260,
-       43264,
-       43307,
-       43312,
-       43347,
-       43360,
-       43389,
-       43392,
-       43443,
-       43444,
-       43456,
-       43471,
-       43482,
-       43488,
-       43493,
-       43494,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43616,
-       43639,
-       43642,
-       43643,
-       43646,
-       43711,
-       43712,
-       43713,
-       43714,
-       43715,
-       43739,
-       43742,
-       43744,
-       43760,
-       43762,
-       43766,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44011,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65020,
-       65136,
-       65141,
-       65142,
-       65277,
-       65296,
-       65306,
-       65313,
-       65339,
-       65345,
-       65371,
-       65382,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66176,
-       66205,
-       66208,
-       66257,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68325,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69632,
-       69702,
-       69734,
-       69744,
-       69762,
-       69817,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69939,
-       69942,
-       69952,
-       69968,
-       70003,
-       70006,
-       70007,
-       70016,
-       70080,
-       70081,
-       70085,
-       70096,
-       70107,
-       70144,
-       70162,
-       70163,
-       70197,
-       70199,
-       70200,
-       70320,
-       70377,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70461,
-       70469,
-       70471,
-       70473,
-       70475,
-       70477,
-       70487,
-       70488,
-       70493,
-       70500,
-       70784,
-       70850,
-       70852,
-       70854,
-       70855,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71103,
-       71168,
-       71231,
-       71232,
-       71233,
-       71236,
-       71237,
-       71248,
-       71258,
-       71296,
-       71350,
-       71360,
-       71370,
-       71840,
-       71914,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92880,
-       92910,
-       92928,
-       92983,
-       92992,
-       92996,
-       93008,
-       93018,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94099,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113822,
-       113823,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102
+       0x0,
+       0x30,
+       0x3A,
+       0x41,
+       0x5B,
+       0x61,
+       0x7B,
+       0xAA,
+       0xAB,
+       0xB5,
+       0xB6,
+       0xBA,
+       0xBB,
+       0xC0,
+       0xD7,
+       0xD8,
+       0xF7,
+       0xF8,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x345,
+       0x346,
+       0x370,
+       0x375,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x5B0,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x610,
+       0x61B,
+       0x620,
+       0x658,
+       0x659,
+       0x66A,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x6DD,
+       0x6E1,
+       0x6E9,
+       0x6ED,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x740,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x818,
+       0x81A,
+       0x82D,
+       0x840,
+       0x859,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x8EA,
+       0x8F0,
+       0x93C,
+       0x93D,
+       0x94D,
+       0x94E,
+       0x951,
+       0x955,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BD,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CD,
+       0x9CE,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4D,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABD,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACD,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3D,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4D,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCD,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4D,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBD,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCD,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4D,
+       0xD4E,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE3B,
+       0xE40,
+       0xE47,
+       0xE4D,
+       0xE4E,
+       0xE50,
+       0xE5A,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xECD,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF20,
+       0xF2A,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF82,
+       0xF88,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0x1000,
+       0x1037,
+       0x1038,
+       0x1039,
+       0x103B,
+       0x104A,
+       0x1050,
+       0x1063,
+       0x1065,
+       0x1069,
+       0x106E,
+       0x1087,
+       0x108E,
+       0x108F,
+       0x1090,
+       0x109A,
+       0x109C,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135F,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1714,
+       0x1720,
+       0x1734,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17B4,
+       0x17B6,
+       0x17C9,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DD,
+       0x17E0,
+       0x17EA,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x1939,
+       0x1946,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A1C,
+       0x1A20,
+       0x1A5F,
+       0x1A61,
+       0x1A75,
+       0x1A80,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA7,
+       0x1AA8,
+       0x1B00,
+       0x1B34,
+       0x1B35,
+       0x1B44,
+       0x1B45,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B80,
+       0x1BAA,
+       0x1BAC,
+       0x1BE6,
+       0x1BE7,
+       0x1BF2,
+       0x1C00,
+       0x1C36,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C7E,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF4,
+       0x1CF5,
+       0x1CF7,
+       0x1D00,
+       0x1DC0,
+       0x1DE7,
+       0x1DF5,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x302A,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA62C,
+       0xA640,
+       0xA66F,
+       0xA674,
+       0xA67C,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6F0,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA8C4,
+       0xA8D0,
+       0xA8DA,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA92B,
+       0xA930,
+       0xA953,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA9B3,
+       0xA9B4,
+       0xA9C0,
+       0xA9CF,
+       0xA9DA,
+       0xA9E0,
+       0xA9E5,
+       0xA9E6,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAA7B,
+       0xAA7E,
+       0xAABF,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xAAF6,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEB,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFF10,
+       0xFF1A,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11046,
+       0x11066,
+       0x11070,
+       0x11082,
+       0x110B9,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11133,
+       0x11136,
+       0x11140,
+       0x11150,
+       0x11173,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x111C0,
+       0x111C1,
+       0x111C5,
+       0x111D0,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x11235,
+       0x11237,
+       0x11238,
+       0x112B0,
+       0x112E9,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133D,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134D,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11480,
+       0x114C2,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115BF,
+       0x11600,
+       0x1163F,
+       0x11640,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B6,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16AD0,
+       0x16AEE,
+       0x16B00,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9E,
+       0x1BC9F,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E
 };
 
 static const UV XPosixAlpha_invlist[] = { /* for ASCII/Latin1 */
@@ -1619,1207 +16093,1207 @@ static const UV XPosixAlpha_invlist[] = { /* for ASCII/Latin1 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       65,
-       91,
-       97,
-       123,
-       170,
-       171,
-       181,
-       182,
-       186,
-       187,
-       192,
-       215,
-       216,
-       247,
-       248,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       837,
-       838,
-       880,
-       885,
-       886,
-       888,
-       890,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1456,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1480,
-       1488,
-       1515,
-       1520,
-       1523,
-       1552,
-       1563,
-       1568,
-       1624,
-       1625,
-       1632,
-       1646,
-       1748,
-       1749,
-       1757,
-       1761,
-       1769,
-       1773,
-       1776,
-       1786,
-       1789,
-       1791,
-       1792,
-       1808,
-       1856,
-       1869,
-       1970,
-       1994,
-       2027,
-       2036,
-       2038,
-       2042,
-       2043,
-       2048,
-       2072,
-       2074,
-       2093,
-       2112,
-       2137,
-       2208,
-       2227,
-       2276,
-       2282,
-       2288,
-       2364,
-       2365,
-       2381,
-       2382,
-       2385,
-       2389,
-       2404,
-       2417,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2493,
-       2501,
-       2503,
-       2505,
-       2507,
-       2509,
-       2510,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2544,
-       2546,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2637,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2672,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2749,
-       2758,
-       2759,
-       2762,
-       2763,
-       2765,
-       2768,
-       2769,
-       2784,
-       2788,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2877,
-       2885,
-       2887,
-       2889,
-       2891,
-       2893,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2929,
-       2930,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3021,
-       3024,
-       3025,
-       3031,
-       3032,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3149,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3261,
-       3269,
-       3270,
-       3273,
-       3274,
-       3277,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3405,
-       3406,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3450,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3570,
-       3572,
-       3585,
-       3643,
-       3648,
-       3655,
-       3661,
-       3662,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3789,
-       3790,
-       3804,
-       3808,
-       3840,
-       3841,
-       3904,
-       3912,
-       3913,
-       3949,
-       3953,
-       3970,
-       3976,
-       3992,
-       3993,
-       4029,
-       4096,
-       4151,
-       4152,
-       4153,
-       4155,
-       4160,
-       4176,
-       4195,
-       4197,
-       4201,
-       4206,
-       4231,
-       4238,
-       4239,
-       4252,
-       4254,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4959,
-       4960,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5908,
-       5920,
-       5940,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6068,
-       6070,
-       6089,
-       6103,
-       6104,
-       6108,
-       6109,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6457,
-       6480,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6656,
-       6684,
-       6688,
-       6751,
-       6753,
-       6773,
-       6823,
-       6824,
-       6912,
-       6964,
-       6965,
-       6980,
-       6981,
-       6988,
-       7040,
-       7082,
-       7084,
-       7088,
-       7098,
-       7142,
-       7143,
-       7154,
-       7168,
-       7222,
-       7245,
-       7248,
-       7258,
-       7294,
-       7401,
-       7405,
-       7406,
-       7412,
-       7413,
-       7415,
-       7424,
-       7616,
-       7655,
-       7669,
-       7680,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11648,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11776,
-       11823,
-       11824,
-       12293,
-       12296,
-       12321,
-       12330,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42528,
-       42538,
-       42540,
-       42560,
-       42607,
-       42612,
-       42620,
-       42623,
-       42654,
-       42655,
-       42736,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43010,
-       43011,
-       43014,
-       43015,
-       43019,
-       43020,
-       43048,
-       43072,
-       43124,
-       43136,
-       43204,
-       43250,
-       43256,
-       43259,
-       43260,
-       43274,
-       43307,
-       43312,
-       43347,
-       43360,
-       43389,
-       43392,
-       43443,
-       43444,
-       43456,
-       43471,
-       43472,
-       43488,
-       43493,
-       43494,
-       43504,
-       43514,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43616,
-       43639,
-       43642,
-       43643,
-       43646,
-       43711,
-       43712,
-       43713,
-       43714,
-       43715,
-       43739,
-       43742,
-       43744,
-       43760,
-       43762,
-       43766,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44011,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65020,
-       65136,
-       65141,
-       65142,
-       65277,
-       65313,
-       65339,
-       65345,
-       65371,
-       65382,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66176,
-       66205,
-       66208,
-       66257,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68325,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69632,
-       69702,
-       69762,
-       69817,
-       69840,
-       69865,
-       69888,
-       69939,
-       69968,
-       70003,
-       70006,
-       70007,
-       70016,
-       70080,
-       70081,
-       70085,
-       70106,
-       70107,
-       70144,
-       70162,
-       70163,
-       70197,
-       70199,
-       70200,
-       70320,
-       70377,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70461,
-       70469,
-       70471,
-       70473,
-       70475,
-       70477,
-       70487,
-       70488,
-       70493,
-       70500,
-       70784,
-       70850,
-       70852,
-       70854,
-       70855,
-       70856,
-       71040,
-       71094,
-       71096,
-       71103,
-       71168,
-       71231,
-       71232,
-       71233,
-       71236,
-       71237,
-       71296,
-       71350,
-       71840,
-       71904,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92880,
-       92910,
-       92928,
-       92983,
-       92992,
-       92996,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94099,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113822,
-       113823,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       124928,
-       125125,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102
+       0x0,
+       0x41,
+       0x5B,
+       0x61,
+       0x7B,
+       0xAA,
+       0xAB,
+       0xB5,
+       0xB6,
+       0xBA,
+       0xBB,
+       0xC0,
+       0xD7,
+       0xD8,
+       0xF7,
+       0xF8,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x345,
+       0x346,
+       0x370,
+       0x375,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x5B0,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x610,
+       0x61B,
+       0x620,
+       0x658,
+       0x659,
+       0x660,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x6DD,
+       0x6E1,
+       0x6E9,
+       0x6ED,
+       0x6F0,
+       0x6FA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x740,
+       0x74D,
+       0x7B2,
+       0x7CA,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x818,
+       0x81A,
+       0x82D,
+       0x840,
+       0x859,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x8EA,
+       0x8F0,
+       0x93C,
+       0x93D,
+       0x94D,
+       0x94E,
+       0x951,
+       0x955,
+       0x964,
+       0x971,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BD,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CD,
+       0x9CE,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9F0,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4D,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA70,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABD,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACD,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3D,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4D,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCD,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4D,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBD,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCD,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4D,
+       0xD4E,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE3B,
+       0xE40,
+       0xE47,
+       0xE4D,
+       0xE4E,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xECD,
+       0xECE,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF82,
+       0xF88,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0x1000,
+       0x1037,
+       0x1038,
+       0x1039,
+       0x103B,
+       0x1040,
+       0x1050,
+       0x1063,
+       0x1065,
+       0x1069,
+       0x106E,
+       0x1087,
+       0x108E,
+       0x108F,
+       0x109C,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135F,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1714,
+       0x1720,
+       0x1734,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17B4,
+       0x17B6,
+       0x17C9,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DD,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x1939,
+       0x1950,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x1A00,
+       0x1A1C,
+       0x1A20,
+       0x1A5F,
+       0x1A61,
+       0x1A75,
+       0x1AA7,
+       0x1AA8,
+       0x1B00,
+       0x1B34,
+       0x1B35,
+       0x1B44,
+       0x1B45,
+       0x1B4C,
+       0x1B80,
+       0x1BAA,
+       0x1BAC,
+       0x1BB0,
+       0x1BBA,
+       0x1BE6,
+       0x1BE7,
+       0x1BF2,
+       0x1C00,
+       0x1C36,
+       0x1C4D,
+       0x1C50,
+       0x1C5A,
+       0x1C7E,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF4,
+       0x1CF5,
+       0x1CF7,
+       0x1D00,
+       0x1DC0,
+       0x1DE7,
+       0x1DF5,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x302A,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA620,
+       0xA62A,
+       0xA62C,
+       0xA640,
+       0xA66F,
+       0xA674,
+       0xA67C,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6F0,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA8C4,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA90A,
+       0xA92B,
+       0xA930,
+       0xA953,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA9B3,
+       0xA9B4,
+       0xA9C0,
+       0xA9CF,
+       0xA9D0,
+       0xA9E0,
+       0xA9E5,
+       0xA9E6,
+       0xA9F0,
+       0xA9FA,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAA7B,
+       0xAA7E,
+       0xAABF,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xAAF6,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEB,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11046,
+       0x11082,
+       0x110B9,
+       0x110D0,
+       0x110E9,
+       0x11100,
+       0x11133,
+       0x11150,
+       0x11173,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x111C0,
+       0x111C1,
+       0x111C5,
+       0x111DA,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x11235,
+       0x11237,
+       0x11238,
+       0x112B0,
+       0x112E9,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133D,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134D,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11480,
+       0x114C2,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115BF,
+       0x11600,
+       0x1163F,
+       0x11640,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11680,
+       0x116B6,
+       0x118A0,
+       0x118E0,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16AD0,
+       0x16AEE,
+       0x16B00,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9E,
+       0x1BC9F,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1E800,
+       0x1E8C5,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E
 };
 
 static const UV XPosixBlank_invlist[] = { /* for ASCII/Latin1 */
@@ -2827,23 +17301,23 @@ static const UV XPosixBlank_invlist[] = { /* for ASCII/Latin1 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       9,
-       10,
-       32,
-       33,
-       160,
-       161,
-       5760,
-       5761,
-       8192,
-       8203,
-       8239,
-       8240,
-       8287,
-       8288,
-       12288,
-       12289
+       0x0,
+       0x9,
+       0xA,
+       0x20,
+       0x21,
+       0xA0,
+       0xA1,
+       0x1680,
+       0x1681,
+       0x2000,
+       0x200B,
+       0x202F,
+       0x2030,
+       0x205F,
+       0x2060,
+       0x3000,
+       0x3001
 };
 
 static const UV XPosixCntrl_invlist[] = { /* for ASCII/Latin1 */
@@ -2851,10 +17325,10 @@ static const UV XPosixCntrl_invlist[] = { /* for ASCII/Latin1 */
        148565664, /* Version and data structure type */
        0,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       32,
-       127,
-       160
+       0x0,
+       0x20,
+       0x7F,
+       0xA0
 };
 
 static const UV XPosixDigit_invlist[] = { /* for ASCII/Latin1 */
@@ -2862,107 +17336,107 @@ static const UV XPosixDigit_invlist[] = { /* for ASCII/Latin1 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       48,
-       58,
-       1632,
-       1642,
-       1776,
-       1786,
-       1984,
-       1994,
-       2406,
-       2416,
-       2534,
-       2544,
-       2662,
-       2672,
-       2790,
-       2800,
-       2918,
-       2928,
-       3046,
-       3056,
-       3174,
-       3184,
-       3302,
-       3312,
-       3430,
-       3440,
-       3558,
-       3568,
-       3664,
-       3674,
-       3792,
-       3802,
-       3872,
-       3882,
-       4160,
-       4170,
-       4240,
-       4250,
-       6112,
-       6122,
-       6160,
-       6170,
-       6470,
-       6480,
-       6608,
-       6618,
-       6784,
-       6794,
-       6800,
-       6810,
-       6992,
-       7002,
-       7088,
-       7098,
-       7232,
-       7242,
-       7248,
-       7258,
-       42528,
-       42538,
-       43216,
-       43226,
-       43264,
-       43274,
-       43472,
-       43482,
-       43504,
-       43514,
-       43600,
-       43610,
-       44016,
-       44026,
-       65296,
-       65306,
-       66720,
-       66730,
-       69734,
-       69744,
-       69872,
-       69882,
-       69942,
-       69952,
-       70096,
-       70106,
-       70384,
-       70394,
-       70864,
-       70874,
-       71248,
-       71258,
-       71360,
-       71370,
-       71904,
-       71914,
-       92768,
-       92778,
-       93008,
-       93018,
-       120782,
-       120832
+       0x0,
+       0x30,
+       0x3A,
+       0x660,
+       0x66A,
+       0x6F0,
+       0x6FA,
+       0x7C0,
+       0x7CA,
+       0x966,
+       0x970,
+       0x9E6,
+       0x9F0,
+       0xA66,
+       0xA70,
+       0xAE6,
+       0xAF0,
+       0xB66,
+       0xB70,
+       0xBE6,
+       0xBF0,
+       0xC66,
+       0xC70,
+       0xCE6,
+       0xCF0,
+       0xD66,
+       0xD70,
+       0xDE6,
+       0xDF0,
+       0xE50,
+       0xE5A,
+       0xED0,
+       0xEDA,
+       0xF20,
+       0xF2A,
+       0x1040,
+       0x104A,
+       0x1090,
+       0x109A,
+       0x17E0,
+       0x17EA,
+       0x1810,
+       0x181A,
+       0x1946,
+       0x1950,
+       0x19D0,
+       0x19DA,
+       0x1A80,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1B50,
+       0x1B5A,
+       0x1BB0,
+       0x1BBA,
+       0x1C40,
+       0x1C4A,
+       0x1C50,
+       0x1C5A,
+       0xA620,
+       0xA62A,
+       0xA8D0,
+       0xA8DA,
+       0xA900,
+       0xA90A,
+       0xA9D0,
+       0xA9DA,
+       0xA9F0,
+       0xA9FA,
+       0xAA50,
+       0xAA5A,
+       0xABF0,
+       0xABFA,
+       0xFF10,
+       0xFF1A,
+       0x104A0,
+       0x104AA,
+       0x11066,
+       0x11070,
+       0x110F0,
+       0x110FA,
+       0x11136,
+       0x11140,
+       0x111D0,
+       0x111DA,
+       0x112F0,
+       0x112FA,
+       0x114D0,
+       0x114DA,
+       0x11650,
+       0x1165A,
+       0x116C0,
+       0x116CA,
+       0x118E0,
+       0x118EA,
+       0x16A60,
+       0x16A6A,
+       0x16B50,
+       0x16B5A,
+       0x1D7CE,
+       0x1D800
 };
 
 static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
@@ -2970,1217 +17444,1217 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       33,
-       127,
-       161,
-       888,
-       890,
-       896,
-       900,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1328,
-       1329,
-       1367,
-       1369,
-       1376,
-       1377,
-       1416,
-       1417,
-       1419,
-       1421,
-       1424,
-       1425,
-       1480,
-       1488,
-       1515,
-       1520,
-       1525,
-       1536,
-       1565,
-       1566,
-       1806,
-       1807,
-       1867,
-       1869,
-       1970,
-       1984,
-       2043,
-       2048,
-       2094,
-       2096,
-       2111,
-       2112,
-       2140,
-       2142,
-       2143,
-       2208,
-       2227,
-       2276,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2492,
-       2501,
-       2503,
-       2505,
-       2507,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2556,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2620,
-       2621,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2638,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2748,
-       2758,
-       2759,
-       2762,
-       2763,
-       2766,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2802,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2876,
-       2885,
-       2887,
-       2889,
-       2891,
-       2894,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2936,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3022,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3067,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3150,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3192,
-       3200,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3260,
-       3269,
-       3270,
-       3273,
-       3274,
-       3278,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3446,
-       3449,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3530,
-       3531,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3573,
-       3585,
-       3643,
-       3647,
-       3676,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3784,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3912,
-       3913,
-       3949,
-       3953,
-       3992,
-       3993,
-       4029,
-       4030,
-       4045,
-       4046,
-       4059,
-       4096,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4957,
-       4989,
-       4992,
-       5018,
-       5024,
-       5109,
-       5120,
-       5760,
-       5761,
-       5789,
-       5792,
-       5881,
-       5888,
-       5901,
-       5902,
-       5909,
-       5920,
-       5943,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6110,
-       6112,
-       6122,
-       6128,
-       6138,
-       6144,
-       6159,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6460,
-       6464,
-       6465,
-       6468,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6619,
-       6622,
-       6684,
-       6686,
-       6751,
-       6752,
-       6781,
-       6783,
-       6794,
-       6800,
-       6810,
-       6816,
-       6830,
-       6832,
-       6847,
-       6912,
-       6988,
-       6992,
-       7037,
-       7040,
-       7156,
-       7164,
-       7224,
-       7227,
-       7242,
-       7245,
-       7296,
-       7360,
-       7368,
-       7376,
-       7415,
-       7416,
-       7418,
-       7424,
-       7670,
-       7676,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8133,
-       8134,
-       8148,
-       8150,
-       8156,
-       8157,
-       8176,
-       8178,
-       8181,
-       8182,
-       8191,
-       8203,
-       8232,
-       8234,
-       8239,
-       8240,
-       8287,
-       8288,
-       8293,
-       8294,
-       8306,
-       8308,
-       8335,
-       8336,
-       8349,
-       8352,
-       8382,
-       8400,
-       8433,
-       8448,
-       8586,
-       8592,
-       9211,
-       9216,
-       9255,
-       9280,
-       9291,
-       9312,
-       11124,
-       11126,
-       11158,
-       11160,
-       11194,
-       11197,
-       11209,
-       11210,
-       11218,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11508,
-       11513,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11633,
-       11647,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11843,
-       11904,
-       11930,
-       11931,
-       12020,
-       12032,
-       12246,
-       12272,
-       12284,
-       12289,
-       12352,
-       12353,
-       12439,
-       12441,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12688,
-       12731,
-       12736,
-       12772,
-       12784,
-       12831,
-       12832,
-       13055,
-       13056,
-       19894,
-       19904,
-       40909,
-       40960,
-       42125,
-       42128,
-       42183,
-       42192,
-       42540,
-       42560,
-       42654,
-       42655,
-       42744,
-       42752,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43052,
-       43056,
-       43066,
-       43072,
-       43128,
-       43136,
-       43205,
-       43214,
-       43226,
-       43232,
-       43260,
-       43264,
-       43348,
-       43359,
-       43389,
-       43392,
-       43470,
-       43471,
-       43482,
-       43486,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43612,
-       43715,
-       43739,
-       43767,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43872,
-       43876,
-       43878,
-       43968,
-       44014,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       57344,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64450,
-       64467,
-       64832,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65022,
-       65024,
-       65050,
-       65056,
-       65070,
-       65072,
-       65107,
-       65108,
-       65127,
-       65128,
-       65132,
-       65136,
-       65141,
-       65142,
-       65277,
-       65279,
-       65280,
-       65281,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65504,
-       65511,
-       65512,
-       65519,
-       65529,
-       65534,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65792,
-       65795,
-       65799,
-       65844,
-       65847,
-       65933,
-       65936,
-       65948,
-       65952,
-       65953,
-       66000,
-       66046,
-       66176,
-       66205,
-       66208,
-       66257,
-       66272,
-       66300,
-       66304,
-       66340,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66463,
-       66500,
-       66504,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       66927,
-       66928,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67671,
-       67743,
-       67751,
-       67760,
-       67840,
-       67868,
-       67871,
-       67898,
-       67903,
-       67904,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68152,
-       68155,
-       68159,
-       68168,
-       68176,
-       68185,
-       68192,
-       68256,
-       68288,
-       68327,
-       68331,
-       68343,
-       68352,
-       68406,
-       68409,
-       68438,
-       68440,
-       68467,
-       68472,
-       68498,
-       68505,
-       68509,
-       68521,
-       68528,
-       68608,
-       68681,
-       69216,
-       69247,
-       69632,
-       69710,
-       69714,
-       69744,
-       69759,
-       69826,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69941,
-       69942,
-       69956,
-       69968,
-       70007,
-       70016,
-       70089,
-       70093,
-       70094,
-       70096,
-       70107,
-       70113,
-       70133,
-       70144,
-       70162,
-       70163,
-       70206,
-       70320,
-       70379,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70460,
-       70469,
-       70471,
-       70473,
-       70475,
-       70478,
-       70487,
-       70488,
-       70493,
-       70500,
-       70502,
-       70509,
-       70512,
-       70517,
-       70784,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71114,
-       71168,
-       71237,
-       71248,
-       71258,
-       71296,
-       71352,
-       71360,
-       71370,
-       71840,
-       71923,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       74864,
-       74869,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92782,
-       92784,
-       92880,
-       92910,
-       92912,
-       92918,
-       92928,
-       92998,
-       93008,
-       93018,
-       93019,
-       93026,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94095,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113820,
-       113828,
-       118784,
-       119030,
-       119040,
-       119079,
-       119081,
-       119262,
-       119296,
-       119366,
-       119552,
-       119639,
-       119648,
-       119666,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       125127,
-       125143,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       126704,
-       126706,
-       126976,
-       127020,
-       127024,
-       127124,
-       127136,
-       127151,
-       127153,
-       127168,
-       127169,
-       127184,
-       127185,
-       127222,
-       127232,
-       127245,
-       127248,
-       127279,
-       127280,
-       127340,
-       127344,
-       127387,
-       127462,
-       127491,
-       127504,
-       127547,
-       127552,
-       127561,
-       127568,
-       127570,
-       127744,
-       127789,
-       127792,
-       127870,
-       127872,
-       127951,
-       127956,
-       127992,
-       128000,
-       128255,
-       128256,
-       128331,
-       128336,
-       128378,
-       128379,
-       128420,
-       128421,
-       128579,
-       128581,
-       128720,
-       128736,
-       128749,
-       128752,
-       128756,
-       128768,
-       128884,
-       128896,
-       128981,
-       129024,
-       129036,
-       129040,
-       129096,
-       129104,
-       129114,
-       129120,
-       129160,
-       129168,
-       129198,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102,
-       917505,
-       917506,
-       917536,
-       917632,
-       917760,
-       918000,
-       983040,
-       1048574,
-       1048576,
-       1114110
+       0x0,
+       0x21,
+       0x7F,
+       0xA1,
+       0x378,
+       0x37A,
+       0x380,
+       0x384,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x560,
+       0x561,
+       0x588,
+       0x589,
+       0x58B,
+       0x58D,
+       0x590,
+       0x591,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F5,
+       0x600,
+       0x61D,
+       0x61E,
+       0x70E,
+       0x70F,
+       0x74B,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7FB,
+       0x800,
+       0x82E,
+       0x830,
+       0x83F,
+       0x840,
+       0x85C,
+       0x85E,
+       0x85F,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9FC,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF2,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB78,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBFB,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC78,
+       0xC80,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD76,
+       0xD79,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF5,
+       0xE01,
+       0xE3B,
+       0xE3F,
+       0xE5C,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFBE,
+       0xFCD,
+       0xFCE,
+       0xFDB,
+       0x1000,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x137D,
+       0x1380,
+       0x139A,
+       0x13A0,
+       0x13F5,
+       0x1400,
+       0x1680,
+       0x1681,
+       0x169D,
+       0x16A0,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1715,
+       0x1720,
+       0x1737,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x17F0,
+       0x17FA,
+       0x1800,
+       0x180F,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1940,
+       0x1941,
+       0x1944,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DB,
+       0x19DE,
+       0x1A1C,
+       0x1A1E,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA0,
+       0x1AAE,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B4C,
+       0x1B50,
+       0x1B7D,
+       0x1B80,
+       0x1BF4,
+       0x1BFC,
+       0x1C38,
+       0x1C3B,
+       0x1C4A,
+       0x1C4D,
+       0x1C80,
+       0x1CC0,
+       0x1CC8,
+       0x1CD0,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DF6,
+       0x1DFC,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FC5,
+       0x1FC6,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FDD,
+       0x1FF0,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFF,
+       0x200B,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x2030,
+       0x205F,
+       0x2060,
+       0x2065,
+       0x2066,
+       0x2072,
+       0x2074,
+       0x208F,
+       0x2090,
+       0x209D,
+       0x20A0,
+       0x20BE,
+       0x20D0,
+       0x20F1,
+       0x2100,
+       0x218A,
+       0x2190,
+       0x23FB,
+       0x2400,
+       0x2427,
+       0x2440,
+       0x244B,
+       0x2460,
+       0x2B74,
+       0x2B76,
+       0x2B96,
+       0x2B98,
+       0x2BBA,
+       0x2BBD,
+       0x2BC9,
+       0x2BCA,
+       0x2BD2,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CF4,
+       0x2CF9,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D71,
+       0x2D7F,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E43,
+       0x2E80,
+       0x2E9A,
+       0x2E9B,
+       0x2EF4,
+       0x2F00,
+       0x2FD6,
+       0x2FF0,
+       0x2FFC,
+       0x3001,
+       0x3040,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x3190,
+       0x31BB,
+       0x31C0,
+       0x31E4,
+       0x31F0,
+       0x321F,
+       0x3220,
+       0x32FF,
+       0x3300,
+       0x4DB6,
+       0x4DC0,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA490,
+       0xA4C7,
+       0xA4D0,
+       0xA62C,
+       0xA640,
+       0xA69E,
+       0xA69F,
+       0xA6F8,
+       0xA700,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA82C,
+       0xA830,
+       0xA83A,
+       0xA840,
+       0xA878,
+       0xA880,
+       0xA8C5,
+       0xA8CE,
+       0xA8DA,
+       0xA8E0,
+       0xA8FC,
+       0xA900,
+       0xA954,
+       0xA95F,
+       0xA97D,
+       0xA980,
+       0xA9CE,
+       0xA9CF,
+       0xA9DA,
+       0xA9DE,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA5C,
+       0xAAC3,
+       0xAADB,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xE000,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBC2,
+       0xFBD3,
+       0xFD40,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFE,
+       0xFE00,
+       0xFE1A,
+       0xFE20,
+       0xFE2E,
+       0xFE30,
+       0xFE53,
+       0xFE54,
+       0xFE67,
+       0xFE68,
+       0xFE6C,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFEFF,
+       0xFF00,
+       0xFF01,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0xFFE0,
+       0xFFE7,
+       0xFFE8,
+       0xFFEF,
+       0xFFF9,
+       0xFFFE,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10100,
+       0x10103,
+       0x10107,
+       0x10134,
+       0x10137,
+       0x1018D,
+       0x10190,
+       0x1019C,
+       0x101A0,
+       0x101A1,
+       0x101D0,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102FC,
+       0x10300,
+       0x10324,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x1039F,
+       0x103C4,
+       0x103C8,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x1056F,
+       0x10570,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10857,
+       0x1089F,
+       0x108A7,
+       0x108B0,
+       0x10900,
+       0x1091C,
+       0x1091F,
+       0x1093A,
+       0x1093F,
+       0x10940,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A48,
+       0x10A50,
+       0x10A59,
+       0x10A60,
+       0x10AA0,
+       0x10AC0,
+       0x10AE7,
+       0x10AEB,
+       0x10AF7,
+       0x10B00,
+       0x10B36,
+       0x10B39,
+       0x10B56,
+       0x10B58,
+       0x10B73,
+       0x10B78,
+       0x10B92,
+       0x10B99,
+       0x10B9D,
+       0x10BA9,
+       0x10BB0,
+       0x10C00,
+       0x10C49,
+       0x10E60,
+       0x10E7F,
+       0x11000,
+       0x1104E,
+       0x11052,
+       0x11070,
+       0x1107F,
+       0x110C2,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11135,
+       0x11136,
+       0x11144,
+       0x11150,
+       0x11177,
+       0x11180,
+       0x111C9,
+       0x111CD,
+       0x111CE,
+       0x111D0,
+       0x111DB,
+       0x111E1,
+       0x111F5,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1123E,
+       0x112B0,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115CA,
+       0x11600,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118F3,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x12470,
+       0x12475,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16A6E,
+       0x16A70,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF6,
+       0x16B00,
+       0x16B46,
+       0x16B50,
+       0x16B5A,
+       0x16B5B,
+       0x16B62,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F8F,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9C,
+       0x1BCA4,
+       0x1D000,
+       0x1D0F6,
+       0x1D100,
+       0x1D127,
+       0x1D129,
+       0x1D1DE,
+       0x1D200,
+       0x1D246,
+       0x1D300,
+       0x1D357,
+       0x1D360,
+       0x1D372,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8C7,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1EEF0,
+       0x1EEF2,
+       0x1F000,
+       0x1F02C,
+       0x1F030,
+       0x1F094,
+       0x1F0A0,
+       0x1F0AF,
+       0x1F0B1,
+       0x1F0C0,
+       0x1F0C1,
+       0x1F0D0,
+       0x1F0D1,
+       0x1F0F6,
+       0x1F100,
+       0x1F10D,
+       0x1F110,
+       0x1F12F,
+       0x1F130,
+       0x1F16C,
+       0x1F170,
+       0x1F19B,
+       0x1F1E6,
+       0x1F203,
+       0x1F210,
+       0x1F23B,
+       0x1F240,
+       0x1F249,
+       0x1F250,
+       0x1F252,
+       0x1F300,
+       0x1F32D,
+       0x1F330,
+       0x1F37E,
+       0x1F380,
+       0x1F3CF,
+       0x1F3D4,
+       0x1F3F8,
+       0x1F400,
+       0x1F4FF,
+       0x1F500,
+       0x1F54B,
+       0x1F550,
+       0x1F57A,
+       0x1F57B,
+       0x1F5A4,
+       0x1F5A5,
+       0x1F643,
+       0x1F645,
+       0x1F6D0,
+       0x1F6E0,
+       0x1F6ED,
+       0x1F6F0,
+       0x1F6F4,
+       0x1F700,
+       0x1F774,
+       0x1F780,
+       0x1F7D5,
+       0x1F800,
+       0x1F80C,
+       0x1F810,
+       0x1F848,
+       0x1F850,
+       0x1F85A,
+       0x1F860,
+       0x1F888,
+       0x1F890,
+       0x1F8AE,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0001,
+       0xE0002,
+       0xE0020,
+       0xE0080,
+       0xE0100,
+       0xE01F0,
+       0xF0000,
+       0xFFFFE,
+       0x100000,
+       0x10FFFE
 };
 
 static const UV XPosixLower_invlist[] = { /* for ASCII/Latin1 */
@@ -4188,1273 +18662,1273 @@ static const UV XPosixLower_invlist[] = { /* for ASCII/Latin1 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       97,
-       123,
-       170,
-       171,
-       181,
-       182,
-       186,
-       187,
-       223,
-       247,
-       248,
-       256,
-       257,
-       258,
-       259,
-       260,
-       261,
-       262,
-       263,
-       264,
-       265,
-       266,
-       267,
-       268,
-       269,
-       270,
-       271,
-       272,
-       273,
-       274,
-       275,
-       276,
-       277,
-       278,
-       279,
-       280,
-       281,
-       282,
-       283,
-       284,
-       285,
-       286,
-       287,
-       288,
-       289,
-       290,
-       291,
-       292,
-       293,
-       294,
-       295,
-       296,
-       297,
-       298,
-       299,
-       300,
-       301,
-       302,
-       303,
-       304,
-       305,
-       306,
-       307,
-       308,
-       309,
-       310,
-       311,
-       313,
-       314,
-       315,
-       316,
-       317,
-       318,
-       319,
-       320,
-       321,
-       322,
-       323,
-       324,
-       325,
-       326,
-       327,
-       328,
-       330,
-       331,
-       332,
-       333,
-       334,
-       335,
-       336,
-       337,
-       338,
-       339,
-       340,
-       341,
-       342,
-       343,
-       344,
-       345,
-       346,
-       347,
-       348,
-       349,
-       350,
-       351,
-       352,
-       353,
-       354,
-       355,
-       356,
-       357,
-       358,
-       359,
-       360,
-       361,
-       362,
-       363,
-       364,
-       365,
-       366,
-       367,
-       368,
-       369,
-       370,
-       371,
-       372,
-       373,
-       374,
-       375,
-       376,
-       378,
-       379,
-       380,
-       381,
-       382,
-       385,
-       387,
-       388,
-       389,
-       390,
-       392,
-       393,
-       396,
-       398,
-       402,
-       403,
-       405,
-       406,
-       409,
-       412,
-       414,
-       415,
-       417,
-       418,
-       419,
-       420,
-       421,
-       422,
-       424,
-       425,
-       426,
-       428,
-       429,
-       430,
-       432,
-       433,
-       436,
-       437,
-       438,
-       439,
-       441,
-       443,
-       445,
-       448,
-       454,
-       455,
-       457,
-       458,
-       460,
-       461,
-       462,
-       463,
-       464,
-       465,
-       466,
-       467,
-       468,
-       469,
-       470,
-       471,
-       472,
-       473,
-       474,
-       475,
-       476,
-       478,
-       479,
-       480,
-       481,
-       482,
-       483,
-       484,
-       485,
-       486,
-       487,
-       488,
-       489,
-       490,
-       491,
-       492,
-       493,
-       494,
-       495,
-       497,
-       499,
-       500,
-       501,
-       502,
-       505,
-       506,
-       507,
-       508,
-       509,
-       510,
-       511,
-       512,
-       513,
-       514,
-       515,
-       516,
-       517,
-       518,
-       519,
-       520,
-       521,
-       522,
-       523,
-       524,
-       525,
-       526,
-       527,
-       528,
-       529,
-       530,
-       531,
-       532,
-       533,
-       534,
-       535,
-       536,
-       537,
-       538,
-       539,
-       540,
-       541,
-       542,
-       543,
-       544,
-       545,
-       546,
-       547,
-       548,
-       549,
-       550,
-       551,
-       552,
-       553,
-       554,
-       555,
-       556,
-       557,
-       558,
-       559,
-       560,
-       561,
-       562,
-       563,
-       570,
-       572,
-       573,
-       575,
-       577,
-       578,
-       579,
-       583,
-       584,
-       585,
-       586,
-       587,
-       588,
-       589,
-       590,
-       591,
-       660,
-       661,
-       697,
-       704,
-       706,
-       736,
-       741,
-       837,
-       838,
-       881,
-       882,
-       883,
-       884,
-       887,
-       888,
-       890,
-       894,
-       912,
-       913,
-       940,
-       975,
-       976,
-       978,
-       981,
-       984,
-       985,
-       986,
-       987,
-       988,
-       989,
-       990,
-       991,
-       992,
-       993,
-       994,
-       995,
-       996,
-       997,
-       998,
-       999,
-       1000,
-       1001,
-       1002,
-       1003,
-       1004,
-       1005,
-       1006,
-       1007,
-       1012,
-       1013,
-       1014,
-       1016,
-       1017,
-       1019,
-       1021,
-       1072,
-       1120,
-       1121,
-       1122,
-       1123,
-       1124,
-       1125,
-       1126,
-       1127,
-       1128,
-       1129,
-       1130,
-       1131,
-       1132,
-       1133,
-       1134,
-       1135,
-       1136,
-       1137,
-       1138,
-       1139,
-       1140,
-       1141,
-       1142,
-       1143,
-       1144,
-       1145,
-       1146,
-       1147,
-       1148,
-       1149,
-       1150,
-       1151,
-       1152,
-       1153,
-       1154,
-       1163,
-       1164,
-       1165,
-       1166,
-       1167,
-       1168,
-       1169,
-       1170,
-       1171,
-       1172,
-       1173,
-       1174,
-       1175,
-       1176,
-       1177,
-       1178,
-       1179,
-       1180,
-       1181,
-       1182,
-       1183,
-       1184,
-       1185,
-       1186,
-       1187,
-       1188,
-       1189,
-       1190,
-       1191,
-       1192,
-       1193,
-       1194,
-       1195,
-       1196,
-       1197,
-       1198,
-       1199,
-       1200,
-       1201,
-       1202,
-       1203,
-       1204,
-       1205,
-       1206,
-       1207,
-       1208,
-       1209,
-       1210,
-       1211,
-       1212,
-       1213,
-       1214,
-       1215,
-       1216,
-       1218,
-       1219,
-       1220,
-       1221,
-       1222,
-       1223,
-       1224,
-       1225,
-       1226,
-       1227,
-       1228,
-       1229,
-       1230,
-       1232,
-       1233,
-       1234,
-       1235,
-       1236,
-       1237,
-       1238,
-       1239,
-       1240,
-       1241,
-       1242,
-       1243,
-       1244,
-       1245,
-       1246,
-       1247,
-       1248,
-       1249,
-       1250,
-       1251,
-       1252,
-       1253,
-       1254,
-       1255,
-       1256,
-       1257,
-       1258,
-       1259,
-       1260,
-       1261,
-       1262,
-       1263,
-       1264,
-       1265,
-       1266,
-       1267,
-       1268,
-       1269,
-       1270,
-       1271,
-       1272,
-       1273,
-       1274,
-       1275,
-       1276,
-       1277,
-       1278,
-       1279,
-       1280,
-       1281,
-       1282,
-       1283,
-       1284,
-       1285,
-       1286,
-       1287,
-       1288,
-       1289,
-       1290,
-       1291,
-       1292,
-       1293,
-       1294,
-       1295,
-       1296,
-       1297,
-       1298,
-       1299,
-       1300,
-       1301,
-       1302,
-       1303,
-       1304,
-       1305,
-       1306,
-       1307,
-       1308,
-       1309,
-       1310,
-       1311,
-       1312,
-       1313,
-       1314,
-       1315,
-       1316,
-       1317,
-       1318,
-       1319,
-       1320,
-       1321,
-       1322,
-       1323,
-       1324,
-       1325,
-       1326,
-       1327,
-       1328,
-       1377,
-       1416,
-       7424,
-       7616,
-       7681,
-       7682,
-       7683,
-       7684,
-       7685,
-       7686,
-       7687,
-       7688,
-       7689,
-       7690,
-       7691,
-       7692,
-       7693,
-       7694,
-       7695,
-       7696,
-       7697,
-       7698,
-       7699,
-       7700,
-       7701,
-       7702,
-       7703,
-       7704,
-       7705,
-       7706,
-       7707,
-       7708,
-       7709,
-       7710,
-       7711,
-       7712,
-       7713,
-       7714,
-       7715,
-       7716,
-       7717,
-       7718,
-       7719,
-       7720,
-       7721,
-       7722,
-       7723,
-       7724,
-       7725,
-       7726,
-       7727,
-       7728,
-       7729,
-       7730,
-       7731,
-       7732,
-       7733,
-       7734,
-       7735,
-       7736,
-       7737,
-       7738,
-       7739,
-       7740,
-       7741,
-       7742,
-       7743,
-       7744,
-       7745,
-       7746,
-       7747,
-       7748,
-       7749,
-       7750,
-       7751,
-       7752,
-       7753,
-       7754,
-       7755,
-       7756,
-       7757,
-       7758,
-       7759,
-       7760,
-       7761,
-       7762,
-       7763,
-       7764,
-       7765,
-       7766,
-       7767,
-       7768,
-       7769,
-       7770,
-       7771,
-       7772,
-       7773,
-       7774,
-       7775,
-       7776,
-       7777,
-       7778,
-       7779,
-       7780,
-       7781,
-       7782,
-       7783,
-       7784,
-       7785,
-       7786,
-       7787,
-       7788,
-       7789,
-       7790,
-       7791,
-       7792,
-       7793,
-       7794,
-       7795,
-       7796,
-       7797,
-       7798,
-       7799,
-       7800,
-       7801,
-       7802,
-       7803,
-       7804,
-       7805,
-       7806,
-       7807,
-       7808,
-       7809,
-       7810,
-       7811,
-       7812,
-       7813,
-       7814,
-       7815,
-       7816,
-       7817,
-       7818,
-       7819,
-       7820,
-       7821,
-       7822,
-       7823,
-       7824,
-       7825,
-       7826,
-       7827,
-       7828,
-       7829,
-       7838,
-       7839,
-       7840,
-       7841,
-       7842,
-       7843,
-       7844,
-       7845,
-       7846,
-       7847,
-       7848,
-       7849,
-       7850,
-       7851,
-       7852,
-       7853,
-       7854,
-       7855,
-       7856,
-       7857,
-       7858,
-       7859,
-       7860,
-       7861,
-       7862,
-       7863,
-       7864,
-       7865,
-       7866,
-       7867,
-       7868,
-       7869,
-       7870,
-       7871,
-       7872,
-       7873,
-       7874,
-       7875,
-       7876,
-       7877,
-       7878,
-       7879,
-       7880,
-       7881,
-       7882,
-       7883,
-       7884,
-       7885,
-       7886,
-       7887,
-       7888,
-       7889,
-       7890,
-       7891,
-       7892,
-       7893,
-       7894,
-       7895,
-       7896,
-       7897,
-       7898,
-       7899,
-       7900,
-       7901,
-       7902,
-       7903,
-       7904,
-       7905,
-       7906,
-       7907,
-       7908,
-       7909,
-       7910,
-       7911,
-       7912,
-       7913,
-       7914,
-       7915,
-       7916,
-       7917,
-       7918,
-       7919,
-       7920,
-       7921,
-       7922,
-       7923,
-       7924,
-       7925,
-       7926,
-       7927,
-       7928,
-       7929,
-       7930,
-       7931,
-       7932,
-       7933,
-       7934,
-       7935,
-       7944,
-       7952,
-       7958,
-       7968,
-       7976,
-       7984,
-       7992,
-       8000,
-       8006,
-       8016,
-       8024,
-       8032,
-       8040,
-       8048,
-       8062,
-       8064,
-       8072,
-       8080,
-       8088,
-       8096,
-       8104,
-       8112,
-       8117,
-       8118,
-       8120,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8136,
-       8144,
-       8148,
-       8150,
-       8152,
-       8160,
-       8168,
-       8178,
-       8181,
-       8182,
-       8184,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8458,
-       8459,
-       8462,
-       8464,
-       8467,
-       8468,
-       8495,
-       8496,
-       8500,
-       8501,
-       8505,
-       8506,
-       8508,
-       8510,
-       8518,
-       8522,
-       8526,
-       8527,
-       8560,
-       8576,
-       8580,
-       8581,
-       9424,
-       9450,
-       11312,
-       11359,
-       11361,
-       11362,
-       11365,
-       11367,
-       11368,
-       11369,
-       11370,
-       11371,
-       11372,
-       11373,
-       11377,
-       11378,
-       11379,
-       11381,
-       11382,
-       11390,
-       11393,
-       11394,
-       11395,
-       11396,
-       11397,
-       11398,
-       11399,
-       11400,
-       11401,
-       11402,
-       11403,
-       11404,
-       11405,
-       11406,
-       11407,
-       11408,
-       11409,
-       11410,
-       11411,
-       11412,
-       11413,
-       11414,
-       11415,
-       11416,
-       11417,
-       11418,
-       11419,
-       11420,
-       11421,
-       11422,
-       11423,
-       11424,
-       11425,
-       11426,
-       11427,
-       11428,
-       11429,
-       11430,
-       11431,
-       11432,
-       11433,
-       11434,
-       11435,
-       11436,
-       11437,
-       11438,
-       11439,
-       11440,
-       11441,
-       11442,
-       11443,
-       11444,
-       11445,
-       11446,
-       11447,
-       11448,
-       11449,
-       11450,
-       11451,
-       11452,
-       11453,
-       11454,
-       11455,
-       11456,
-       11457,
-       11458,
-       11459,
-       11460,
-       11461,
-       11462,
-       11463,
-       11464,
-       11465,
-       11466,
-       11467,
-       11468,
-       11469,
-       11470,
-       11471,
-       11472,
-       11473,
-       11474,
-       11475,
-       11476,
-       11477,
-       11478,
-       11479,
-       11480,
-       11481,
-       11482,
-       11483,
-       11484,
-       11485,
-       11486,
-       11487,
-       11488,
-       11489,
-       11490,
-       11491,
-       11493,
-       11500,
-       11501,
-       11502,
-       11503,
-       11507,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       42561,
-       42562,
-       42563,
-       42564,
-       42565,
-       42566,
-       42567,
-       42568,
-       42569,
-       42570,
-       42571,
-       42572,
-       42573,
-       42574,
-       42575,
-       42576,
-       42577,
-       42578,
-       42579,
-       42580,
-       42581,
-       42582,
-       42583,
-       42584,
-       42585,
-       42586,
-       42587,
-       42588,
-       42589,
-       42590,
-       42591,
-       42592,
-       42593,
-       42594,
-       42595,
-       42596,
-       42597,
-       42598,
-       42599,
-       42600,
-       42601,
-       42602,
-       42603,
-       42604,
-       42605,
-       42606,
-       42625,
-       42626,
-       42627,
-       42628,
-       42629,
-       42630,
-       42631,
-       42632,
-       42633,
-       42634,
-       42635,
-       42636,
-       42637,
-       42638,
-       42639,
-       42640,
-       42641,
-       42642,
-       42643,
-       42644,
-       42645,
-       42646,
-       42647,
-       42648,
-       42649,
-       42650,
-       42651,
-       42654,
-       42787,
-       42788,
-       42789,
-       42790,
-       42791,
-       42792,
-       42793,
-       42794,
-       42795,
-       42796,
-       42797,
-       42798,
-       42799,
-       42802,
-       42803,
-       42804,
-       42805,
-       42806,
-       42807,
-       42808,
-       42809,
-       42810,
-       42811,
-       42812,
-       42813,
-       42814,
-       42815,
-       42816,
-       42817,
-       42818,
-       42819,
-       42820,
-       42821,
-       42822,
-       42823,
-       42824,
-       42825,
-       42826,
-       42827,
-       42828,
-       42829,
-       42830,
-       42831,
-       42832,
-       42833,
-       42834,
-       42835,
-       42836,
-       42837,
-       42838,
-       42839,
-       42840,
-       42841,
-       42842,
-       42843,
-       42844,
-       42845,
-       42846,
-       42847,
-       42848,
-       42849,
-       42850,
-       42851,
-       42852,
-       42853,
-       42854,
-       42855,
-       42856,
-       42857,
-       42858,
-       42859,
-       42860,
-       42861,
-       42862,
-       42863,
-       42873,
-       42874,
-       42875,
-       42876,
-       42877,
-       42879,
-       42880,
-       42881,
-       42882,
-       42883,
-       42884,
-       42885,
-       42886,
-       42887,
-       42888,
-       42892,
-       42893,
-       42894,
-       42895,
-       42897,
-       42898,
-       42899,
-       42902,
-       42903,
-       42904,
-       42905,
-       42906,
-       42907,
-       42908,
-       42909,
-       42910,
-       42911,
-       42912,
-       42913,
-       42914,
-       42915,
-       42916,
-       42917,
-       42918,
-       42919,
-       42920,
-       42921,
-       42922,
-       43000,
-       43003,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       64256,
-       64263,
-       64275,
-       64280,
-       65345,
-       65371,
-       66600,
-       66640,
-       71872,
-       71904,
-       119834,
-       119860,
-       119886,
-       119893,
-       119894,
-       119912,
-       119938,
-       119964,
-       119990,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120016,
-       120042,
-       120068,
-       120094,
-       120120,
-       120146,
-       120172,
-       120198,
-       120224,
-       120250,
-       120276,
-       120302,
-       120328,
-       120354,
-       120380,
-       120406,
-       120432,
-       120458,
-       120486,
-       120514,
-       120539,
-       120540,
-       120546,
-       120572,
-       120597,
-       120598,
-       120604,
-       120630,
-       120655,
-       120656,
-       120662,
-       120688,
-       120713,
-       120714,
-       120720,
-       120746,
-       120771,
-       120772,
-       120778,
-       120779,
-       120780
+       0x0,
+       0x61,
+       0x7B,
+       0xAA,
+       0xAB,
+       0xB5,
+       0xB6,
+       0xBA,
+       0xBB,
+       0xDF,
+       0xF7,
+       0xF8,
+       0x100,
+       0x101,
+       0x102,
+       0x103,
+       0x104,
+       0x105,
+       0x106,
+       0x107,
+       0x108,
+       0x109,
+       0x10A,
+       0x10B,
+       0x10C,
+       0x10D,
+       0x10E,
+       0x10F,
+       0x110,
+       0x111,
+       0x112,
+       0x113,
+       0x114,
+       0x115,
+       0x116,
+       0x117,
+       0x118,
+       0x119,
+       0x11A,
+       0x11B,
+       0x11C,
+       0x11D,
+       0x11E,
+       0x11F,
+       0x120,
+       0x121,
+       0x122,
+       0x123,
+       0x124,
+       0x125,
+       0x126,
+       0x127,
+       0x128,
+       0x129,
+       0x12A,
+       0x12B,
+       0x12C,
+       0x12D,
+       0x12E,
+       0x12F,
+       0x130,
+       0x131,
+       0x132,
+       0x133,
+       0x134,
+       0x135,
+       0x136,
+       0x137,
+       0x139,
+       0x13A,
+       0x13B,
+       0x13C,
+       0x13D,
+       0x13E,
+       0x13F,
+       0x140,
+       0x141,
+       0x142,
+       0x143,
+       0x144,
+       0x145,
+       0x146,
+       0x147,
+       0x148,
+       0x14A,
+       0x14B,
+       0x14C,
+       0x14D,
+       0x14E,
+       0x14F,
+       0x150,
+       0x151,
+       0x152,
+       0x153,
+       0x154,
+       0x155,
+       0x156,
+       0x157,
+       0x158,
+       0x159,
+       0x15A,
+       0x15B,
+       0x15C,
+       0x15D,
+       0x15E,
+       0x15F,
+       0x160,
+       0x161,
+       0x162,
+       0x163,
+       0x164,
+       0x165,
+       0x166,
+       0x167,
+       0x168,
+       0x169,
+       0x16A,
+       0x16B,
+       0x16C,
+       0x16D,
+       0x16E,
+       0x16F,
+       0x170,
+       0x171,
+       0x172,
+       0x173,
+       0x174,
+       0x175,
+       0x176,
+       0x177,
+       0x178,
+       0x17A,
+       0x17B,
+       0x17C,
+       0x17D,
+       0x17E,
+       0x181,
+       0x183,
+       0x184,
+       0x185,
+       0x186,
+       0x188,
+       0x189,
+       0x18C,
+       0x18E,
+       0x192,
+       0x193,
+       0x195,
+       0x196,
+       0x199,
+       0x19C,
+       0x19E,
+       0x19F,
+       0x1A1,
+       0x1A2,
+       0x1A3,
+       0x1A4,
+       0x1A5,
+       0x1A6,
+       0x1A8,
+       0x1A9,
+       0x1AA,
+       0x1AC,
+       0x1AD,
+       0x1AE,
+       0x1B0,
+       0x1B1,
+       0x1B4,
+       0x1B5,
+       0x1B6,
+       0x1B7,
+       0x1B9,
+       0x1BB,
+       0x1BD,
+       0x1C0,
+       0x1C6,
+       0x1C7,
+       0x1C9,
+       0x1CA,
+       0x1CC,
+       0x1CD,
+       0x1CE,
+       0x1CF,
+       0x1D0,
+       0x1D1,
+       0x1D2,
+       0x1D3,
+       0x1D4,
+       0x1D5,
+       0x1D6,
+       0x1D7,
+       0x1D8,
+       0x1D9,
+       0x1DA,
+       0x1DB,
+       0x1DC,
+       0x1DE,
+       0x1DF,
+       0x1E0,
+       0x1E1,
+       0x1E2,
+       0x1E3,
+       0x1E4,
+       0x1E5,
+       0x1E6,
+       0x1E7,
+       0x1E8,
+       0x1E9,
+       0x1EA,
+       0x1EB,
+       0x1EC,
+       0x1ED,
+       0x1EE,
+       0x1EF,
+       0x1F1,
+       0x1F3,
+       0x1F4,
+       0x1F5,
+       0x1F6,
+       0x1F9,
+       0x1FA,
+       0x1FB,
+       0x1FC,
+       0x1FD,
+       0x1FE,
+       0x1FF,
+       0x200,
+       0x201,
+       0x202,
+       0x203,
+       0x204,
+       0x205,
+       0x206,
+       0x207,
+       0x208,
+       0x209,
+       0x20A,
+       0x20B,
+       0x20C,
+       0x20D,
+       0x20E,
+       0x20F,
+       0x210,
+       0x211,
+       0x212,
+       0x213,
+       0x214,
+       0x215,
+       0x216,
+       0x217,
+       0x218,
+       0x219,
+       0x21A,
+       0x21B,
+       0x21C,
+       0x21D,
+       0x21E,
+       0x21F,
+       0x220,
+       0x221,
+       0x222,
+       0x223,
+       0x224,
+       0x225,
+       0x226,
+       0x227,
+       0x228,
+       0x229,
+       0x22A,
+       0x22B,
+       0x22C,
+       0x22D,
+       0x22E,
+       0x22F,
+       0x230,
+       0x231,
+       0x232,
+       0x233,
+       0x23A,
+       0x23C,
+       0x23D,
+       0x23F,
+       0x241,
+       0x242,
+       0x243,
+       0x247,
+       0x248,
+       0x249,
+       0x24A,
+       0x24B,
+       0x24C,
+       0x24D,
+       0x24E,
+       0x24F,
+       0x294,
+       0x295,
+       0x2B9,
+       0x2C0,
+       0x2C2,
+       0x2E0,
+       0x2E5,
+       0x345,
+       0x346,
+       0x371,
+       0x372,
+       0x373,
+       0x374,
+       0x377,
+       0x378,
+       0x37A,
+       0x37E,
+       0x390,
+       0x391,
+       0x3AC,
+       0x3CF,
+       0x3D0,
+       0x3D2,
+       0x3D5,
+       0x3D8,
+       0x3D9,
+       0x3DA,
+       0x3DB,
+       0x3DC,
+       0x3DD,
+       0x3DE,
+       0x3DF,
+       0x3E0,
+       0x3E1,
+       0x3E2,
+       0x3E3,
+       0x3E4,
+       0x3E5,
+       0x3E6,
+       0x3E7,
+       0x3E8,
+       0x3E9,
+       0x3EA,
+       0x3EB,
+       0x3EC,
+       0x3ED,
+       0x3EE,
+       0x3EF,
+       0x3F4,
+       0x3F5,
+       0x3F6,
+       0x3F8,
+       0x3F9,
+       0x3FB,
+       0x3FD,
+       0x430,
+       0x460,
+       0x461,
+       0x462,
+       0x463,
+       0x464,
+       0x465,
+       0x466,
+       0x467,
+       0x468,
+       0x469,
+       0x46A,
+       0x46B,
+       0x46C,
+       0x46D,
+       0x46E,
+       0x46F,
+       0x470,
+       0x471,
+       0x472,
+       0x473,
+       0x474,
+       0x475,
+       0x476,
+       0x477,
+       0x478,
+       0x479,
+       0x47A,
+       0x47B,
+       0x47C,
+       0x47D,
+       0x47E,
+       0x47F,
+       0x480,
+       0x481,
+       0x482,
+       0x48B,
+       0x48C,
+       0x48D,
+       0x48E,
+       0x48F,
+       0x490,
+       0x491,
+       0x492,
+       0x493,
+       0x494,
+       0x495,
+       0x496,
+       0x497,
+       0x498,
+       0x499,
+       0x49A,
+       0x49B,
+       0x49C,
+       0x49D,
+       0x49E,
+       0x49F,
+       0x4A0,
+       0x4A1,
+       0x4A2,
+       0x4A3,
+       0x4A4,
+       0x4A5,
+       0x4A6,
+       0x4A7,
+       0x4A8,
+       0x4A9,
+       0x4AA,
+       0x4AB,
+       0x4AC,
+       0x4AD,
+       0x4AE,
+       0x4AF,
+       0x4B0,
+       0x4B1,
+       0x4B2,
+       0x4B3,
+       0x4B4,
+       0x4B5,
+       0x4B6,
+       0x4B7,
+       0x4B8,
+       0x4B9,
+       0x4BA,
+       0x4BB,
+       0x4BC,
+       0x4BD,
+       0x4BE,
+       0x4BF,
+       0x4C0,
+       0x4C2,
+       0x4C3,
+       0x4C4,
+       0x4C5,
+       0x4C6,
+       0x4C7,
+       0x4C8,
+       0x4C9,
+       0x4CA,
+       0x4CB,
+       0x4CC,
+       0x4CD,
+       0x4CE,
+       0x4D0,
+       0x4D1,
+       0x4D2,
+       0x4D3,
+       0x4D4,
+       0x4D5,
+       0x4D6,
+       0x4D7,
+       0x4D8,
+       0x4D9,
+       0x4DA,
+       0x4DB,
+       0x4DC,
+       0x4DD,
+       0x4DE,
+       0x4DF,
+       0x4E0,
+       0x4E1,
+       0x4E2,
+       0x4E3,
+       0x4E4,
+       0x4E5,
+       0x4E6,
+       0x4E7,
+       0x4E8,
+       0x4E9,
+       0x4EA,
+       0x4EB,
+       0x4EC,
+       0x4ED,
+       0x4EE,
+       0x4EF,
+       0x4F0,
+       0x4F1,
+       0x4F2,
+       0x4F3,
+       0x4F4,
+       0x4F5,
+       0x4F6,
+       0x4F7,
+       0x4F8,
+       0x4F9,
+       0x4FA,
+       0x4FB,
+       0x4FC,
+       0x4FD,
+       0x4FE,
+       0x4FF,
+       0x500,
+       0x501,
+       0x502,
+       0x503,
+       0x504,
+       0x505,
+       0x506,
+       0x507,
+       0x508,
+       0x509,
+       0x50A,
+       0x50B,
+       0x50C,
+       0x50D,
+       0x50E,
+       0x50F,
+       0x510,
+       0x511,
+       0x512,
+       0x513,
+       0x514,
+       0x515,
+       0x516,
+       0x517,
+       0x518,
+       0x519,
+       0x51A,
+       0x51B,
+       0x51C,
+       0x51D,
+       0x51E,
+       0x51F,
+       0x520,
+       0x521,
+       0x522,
+       0x523,
+       0x524,
+       0x525,
+       0x526,
+       0x527,
+       0x528,
+       0x529,
+       0x52A,
+       0x52B,
+       0x52C,
+       0x52D,
+       0x52E,
+       0x52F,
+       0x530,
+       0x561,
+       0x588,
+       0x1D00,
+       0x1DC0,
+       0x1E01,
+       0x1E02,
+       0x1E03,
+       0x1E04,
+       0x1E05,
+       0x1E06,
+       0x1E07,
+       0x1E08,
+       0x1E09,
+       0x1E0A,
+       0x1E0B,
+       0x1E0C,
+       0x1E0D,
+       0x1E0E,
+       0x1E0F,
+       0x1E10,
+       0x1E11,
+       0x1E12,
+       0x1E13,
+       0x1E14,
+       0x1E15,
+       0x1E16,
+       0x1E17,
+       0x1E18,
+       0x1E19,
+       0x1E1A,
+       0x1E1B,
+       0x1E1C,
+       0x1E1D,
+       0x1E1E,
+       0x1E1F,
+       0x1E20,
+       0x1E21,
+       0x1E22,
+       0x1E23,
+       0x1E24,
+       0x1E25,
+       0x1E26,
+       0x1E27,
+       0x1E28,
+       0x1E29,
+       0x1E2A,
+       0x1E2B,
+       0x1E2C,
+       0x1E2D,
+       0x1E2E,
+       0x1E2F,
+       0x1E30,
+       0x1E31,
+       0x1E32,
+       0x1E33,
+       0x1E34,
+       0x1E35,
+       0x1E36,
+       0x1E37,
+       0x1E38,
+       0x1E39,
+       0x1E3A,
+       0x1E3B,
+       0x1E3C,
+       0x1E3D,
+       0x1E3E,
+       0x1E3F,
+       0x1E40,
+       0x1E41,
+       0x1E42,
+       0x1E43,
+       0x1E44,
+       0x1E45,
+       0x1E46,
+       0x1E47,
+       0x1E48,
+       0x1E49,
+       0x1E4A,
+       0x1E4B,
+       0x1E4C,
+       0x1E4D,
+       0x1E4E,
+       0x1E4F,
+       0x1E50,
+       0x1E51,
+       0x1E52,
+       0x1E53,
+       0x1E54,
+       0x1E55,
+       0x1E56,
+       0x1E57,
+       0x1E58,
+       0x1E59,
+       0x1E5A,
+       0x1E5B,
+       0x1E5C,
+       0x1E5D,
+       0x1E5E,
+       0x1E5F,
+       0x1E60,
+       0x1E61,
+       0x1E62,
+       0x1E63,
+       0x1E64,
+       0x1E65,
+       0x1E66,
+       0x1E67,
+       0x1E68,
+       0x1E69,
+       0x1E6A,
+       0x1E6B,
+       0x1E6C,
+       0x1E6D,
+       0x1E6E,
+       0x1E6F,
+       0x1E70,
+       0x1E71,
+       0x1E72,
+       0x1E73,
+       0x1E74,
+       0x1E75,
+       0x1E76,
+       0x1E77,
+       0x1E78,
+       0x1E79,
+       0x1E7A,
+       0x1E7B,
+       0x1E7C,
+       0x1E7D,
+       0x1E7E,
+       0x1E7F,
+       0x1E80,
+       0x1E81,
+       0x1E82,
+       0x1E83,
+       0x1E84,
+       0x1E85,
+       0x1E86,
+       0x1E87,
+       0x1E88,
+       0x1E89,
+       0x1E8A,
+       0x1E8B,
+       0x1E8C,
+       0x1E8D,
+       0x1E8E,
+       0x1E8F,
+       0x1E90,
+       0x1E91,
+       0x1E92,
+       0x1E93,
+       0x1E94,
+       0x1E95,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1EA1,
+       0x1EA2,
+       0x1EA3,
+       0x1EA4,
+       0x1EA5,
+       0x1EA6,
+       0x1EA7,
+       0x1EA8,
+       0x1EA9,
+       0x1EAA,
+       0x1EAB,
+       0x1EAC,
+       0x1EAD,
+       0x1EAE,
+       0x1EAF,
+       0x1EB0,
+       0x1EB1,
+       0x1EB2,
+       0x1EB3,
+       0x1EB4,
+       0x1EB5,
+       0x1EB6,
+       0x1EB7,
+       0x1EB8,
+       0x1EB9,
+       0x1EBA,
+       0x1EBB,
+       0x1EBC,
+       0x1EBD,
+       0x1EBE,
+       0x1EBF,
+       0x1EC0,
+       0x1EC1,
+       0x1EC2,
+       0x1EC3,
+       0x1EC4,
+       0x1EC5,
+       0x1EC6,
+       0x1EC7,
+       0x1EC8,
+       0x1EC9,
+       0x1ECA,
+       0x1ECB,
+       0x1ECC,
+       0x1ECD,
+       0x1ECE,
+       0x1ECF,
+       0x1ED0,
+       0x1ED1,
+       0x1ED2,
+       0x1ED3,
+       0x1ED4,
+       0x1ED5,
+       0x1ED6,
+       0x1ED7,
+       0x1ED8,
+       0x1ED9,
+       0x1EDA,
+       0x1EDB,
+       0x1EDC,
+       0x1EDD,
+       0x1EDE,
+       0x1EDF,
+       0x1EE0,
+       0x1EE1,
+       0x1EE2,
+       0x1EE3,
+       0x1EE4,
+       0x1EE5,
+       0x1EE6,
+       0x1EE7,
+       0x1EE8,
+       0x1EE9,
+       0x1EEA,
+       0x1EEB,
+       0x1EEC,
+       0x1EED,
+       0x1EEE,
+       0x1EEF,
+       0x1EF0,
+       0x1EF1,
+       0x1EF2,
+       0x1EF3,
+       0x1EF4,
+       0x1EF5,
+       0x1EF6,
+       0x1EF7,
+       0x1EF8,
+       0x1EF9,
+       0x1EFA,
+       0x1EFB,
+       0x1EFC,
+       0x1EFD,
+       0x1EFE,
+       0x1EFF,
+       0x1F08,
+       0x1F10,
+       0x1F16,
+       0x1F20,
+       0x1F28,
+       0x1F30,
+       0x1F38,
+       0x1F40,
+       0x1F46,
+       0x1F50,
+       0x1F58,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1F7E,
+       0x1F80,
+       0x1F88,
+       0x1F90,
+       0x1F98,
+       0x1FA0,
+       0x1FA8,
+       0x1FB0,
+       0x1FB5,
+       0x1FB6,
+       0x1FB8,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FC8,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FD8,
+       0x1FE0,
+       0x1FE8,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FF8,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x210A,
+       0x210B,
+       0x210E,
+       0x2110,
+       0x2113,
+       0x2114,
+       0x212F,
+       0x2130,
+       0x2134,
+       0x2135,
+       0x2139,
+       0x213A,
+       0x213C,
+       0x213E,
+       0x2146,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2170,
+       0x2180,
+       0x2184,
+       0x2185,
+       0x24D0,
+       0x24EA,
+       0x2C30,
+       0x2C5F,
+       0x2C61,
+       0x2C62,
+       0x2C65,
+       0x2C67,
+       0x2C68,
+       0x2C69,
+       0x2C6A,
+       0x2C6B,
+       0x2C6C,
+       0x2C6D,
+       0x2C71,
+       0x2C72,
+       0x2C73,
+       0x2C75,
+       0x2C76,
+       0x2C7E,
+       0x2C81,
+       0x2C82,
+       0x2C83,
+       0x2C84,
+       0x2C85,
+       0x2C86,
+       0x2C87,
+       0x2C88,
+       0x2C89,
+       0x2C8A,
+       0x2C8B,
+       0x2C8C,
+       0x2C8D,
+       0x2C8E,
+       0x2C8F,
+       0x2C90,
+       0x2C91,
+       0x2C92,
+       0x2C93,
+       0x2C94,
+       0x2C95,
+       0x2C96,
+       0x2C97,
+       0x2C98,
+       0x2C99,
+       0x2C9A,
+       0x2C9B,
+       0x2C9C,
+       0x2C9D,
+       0x2C9E,
+       0x2C9F,
+       0x2CA0,
+       0x2CA1,
+       0x2CA2,
+       0x2CA3,
+       0x2CA4,
+       0x2CA5,
+       0x2CA6,
+       0x2CA7,
+       0x2CA8,
+       0x2CA9,
+       0x2CAA,
+       0x2CAB,
+       0x2CAC,
+       0x2CAD,
+       0x2CAE,
+       0x2CAF,
+       0x2CB0,
+       0x2CB1,
+       0x2CB2,
+       0x2CB3,
+       0x2CB4,
+       0x2CB5,
+       0x2CB6,
+       0x2CB7,
+       0x2CB8,
+       0x2CB9,
+       0x2CBA,
+       0x2CBB,
+       0x2CBC,
+       0x2CBD,
+       0x2CBE,
+       0x2CBF,
+       0x2CC0,
+       0x2CC1,
+       0x2CC2,
+       0x2CC3,
+       0x2CC4,
+       0x2CC5,
+       0x2CC6,
+       0x2CC7,
+       0x2CC8,
+       0x2CC9,
+       0x2CCA,
+       0x2CCB,
+       0x2CCC,
+       0x2CCD,
+       0x2CCE,
+       0x2CCF,
+       0x2CD0,
+       0x2CD1,
+       0x2CD2,
+       0x2CD3,
+       0x2CD4,
+       0x2CD5,
+       0x2CD6,
+       0x2CD7,
+       0x2CD8,
+       0x2CD9,
+       0x2CDA,
+       0x2CDB,
+       0x2CDC,
+       0x2CDD,
+       0x2CDE,
+       0x2CDF,
+       0x2CE0,
+       0x2CE1,
+       0x2CE2,
+       0x2CE3,
+       0x2CE5,
+       0x2CEC,
+       0x2CED,
+       0x2CEE,
+       0x2CEF,
+       0x2CF3,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0xA641,
+       0xA642,
+       0xA643,
+       0xA644,
+       0xA645,
+       0xA646,
+       0xA647,
+       0xA648,
+       0xA649,
+       0xA64A,
+       0xA64B,
+       0xA64C,
+       0xA64D,
+       0xA64E,
+       0xA64F,
+       0xA650,
+       0xA651,
+       0xA652,
+       0xA653,
+       0xA654,
+       0xA655,
+       0xA656,
+       0xA657,
+       0xA658,
+       0xA659,
+       0xA65A,
+       0xA65B,
+       0xA65C,
+       0xA65D,
+       0xA65E,
+       0xA65F,
+       0xA660,
+       0xA661,
+       0xA662,
+       0xA663,
+       0xA664,
+       0xA665,
+       0xA666,
+       0xA667,
+       0xA668,
+       0xA669,
+       0xA66A,
+       0xA66B,
+       0xA66C,
+       0xA66D,
+       0xA66E,
+       0xA681,
+       0xA682,
+       0xA683,
+       0xA684,
+       0xA685,
+       0xA686,
+       0xA687,
+       0xA688,
+       0xA689,
+       0xA68A,
+       0xA68B,
+       0xA68C,
+       0xA68D,
+       0xA68E,
+       0xA68F,
+       0xA690,
+       0xA691,
+       0xA692,
+       0xA693,
+       0xA694,
+       0xA695,
+       0xA696,
+       0xA697,
+       0xA698,
+       0xA699,
+       0xA69A,
+       0xA69B,
+       0xA69E,
+       0xA723,
+       0xA724,
+       0xA725,
+       0xA726,
+       0xA727,
+       0xA728,
+       0xA729,
+       0xA72A,
+       0xA72B,
+       0xA72C,
+       0xA72D,
+       0xA72E,
+       0xA72F,
+       0xA732,
+       0xA733,
+       0xA734,
+       0xA735,
+       0xA736,
+       0xA737,
+       0xA738,
+       0xA739,
+       0xA73A,
+       0xA73B,
+       0xA73C,
+       0xA73D,
+       0xA73E,
+       0xA73F,
+       0xA740,
+       0xA741,
+       0xA742,
+       0xA743,
+       0xA744,
+       0xA745,
+       0xA746,
+       0xA747,
+       0xA748,
+       0xA749,
+       0xA74A,
+       0xA74B,
+       0xA74C,
+       0xA74D,
+       0xA74E,
+       0xA74F,
+       0xA750,
+       0xA751,
+       0xA752,
+       0xA753,
+       0xA754,
+       0xA755,
+       0xA756,
+       0xA757,
+       0xA758,
+       0xA759,
+       0xA75A,
+       0xA75B,
+       0xA75C,
+       0xA75D,
+       0xA75E,
+       0xA75F,
+       0xA760,
+       0xA761,
+       0xA762,
+       0xA763,
+       0xA764,
+       0xA765,
+       0xA766,
+       0xA767,
+       0xA768,
+       0xA769,
+       0xA76A,
+       0xA76B,
+       0xA76C,
+       0xA76D,
+       0xA76E,
+       0xA76F,
+       0xA779,
+       0xA77A,
+       0xA77B,
+       0xA77C,
+       0xA77D,
+       0xA77F,
+       0xA780,
+       0xA781,
+       0xA782,
+       0xA783,
+       0xA784,
+       0xA785,
+       0xA786,
+       0xA787,
+       0xA788,
+       0xA78C,
+       0xA78D,
+       0xA78E,
+       0xA78F,
+       0xA791,
+       0xA792,
+       0xA793,
+       0xA796,
+       0xA797,
+       0xA798,
+       0xA799,
+       0xA79A,
+       0xA79B,
+       0xA79C,
+       0xA79D,
+       0xA79E,
+       0xA79F,
+       0xA7A0,
+       0xA7A1,
+       0xA7A2,
+       0xA7A3,
+       0xA7A4,
+       0xA7A5,
+       0xA7A6,
+       0xA7A7,
+       0xA7A8,
+       0xA7A9,
+       0xA7AA,
+       0xA7F8,
+       0xA7FB,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFF41,
+       0xFF5B,
+       0x10428,
+       0x10450,
+       0x118C0,
+       0x118E0,
+       0x1D41A,
+       0x1D434,
+       0x1D44E,
+       0x1D455,
+       0x1D456,
+       0x1D468,
+       0x1D482,
+       0x1D49C,
+       0x1D4B6,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D4D0,
+       0x1D4EA,
+       0x1D504,
+       0x1D51E,
+       0x1D538,
+       0x1D552,
+       0x1D56C,
+       0x1D586,
+       0x1D5A0,
+       0x1D5BA,
+       0x1D5D4,
+       0x1D5EE,
+       0x1D608,
+       0x1D622,
+       0x1D63C,
+       0x1D656,
+       0x1D670,
+       0x1D68A,
+       0x1D6A6,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6E2,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D71C,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D756,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D790,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CA,
+       0x1D7CB,
+       0x1D7CC
 };
 
 static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
@@ -5462,1211 +19936,1211 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       32,
-       127,
-       160,
-       888,
-       890,
-       896,
-       900,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1328,
-       1329,
-       1367,
-       1369,
-       1376,
-       1377,
-       1416,
-       1417,
-       1419,
-       1421,
-       1424,
-       1425,
-       1480,
-       1488,
-       1515,
-       1520,
-       1525,
-       1536,
-       1565,
-       1566,
-       1806,
-       1807,
-       1867,
-       1869,
-       1970,
-       1984,
-       2043,
-       2048,
-       2094,
-       2096,
-       2111,
-       2112,
-       2140,
-       2142,
-       2143,
-       2208,
-       2227,
-       2276,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2492,
-       2501,
-       2503,
-       2505,
-       2507,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2556,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2620,
-       2621,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2638,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2748,
-       2758,
-       2759,
-       2762,
-       2763,
-       2766,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2802,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2876,
-       2885,
-       2887,
-       2889,
-       2891,
-       2894,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2936,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3022,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3067,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3150,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3192,
-       3200,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3260,
-       3269,
-       3270,
-       3273,
-       3274,
-       3278,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3446,
-       3449,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3530,
-       3531,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3573,
-       3585,
-       3643,
-       3647,
-       3676,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3784,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3912,
-       3913,
-       3949,
-       3953,
-       3992,
-       3993,
-       4029,
-       4030,
-       4045,
-       4046,
-       4059,
-       4096,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4957,
-       4989,
-       4992,
-       5018,
-       5024,
-       5109,
-       5120,
-       5789,
-       5792,
-       5881,
-       5888,
-       5901,
-       5902,
-       5909,
-       5920,
-       5943,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6110,
-       6112,
-       6122,
-       6128,
-       6138,
-       6144,
-       6159,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6460,
-       6464,
-       6465,
-       6468,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6619,
-       6622,
-       6684,
-       6686,
-       6751,
-       6752,
-       6781,
-       6783,
-       6794,
-       6800,
-       6810,
-       6816,
-       6830,
-       6832,
-       6847,
-       6912,
-       6988,
-       6992,
-       7037,
-       7040,
-       7156,
-       7164,
-       7224,
-       7227,
-       7242,
-       7245,
-       7296,
-       7360,
-       7368,
-       7376,
-       7415,
-       7416,
-       7418,
-       7424,
-       7670,
-       7676,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8133,
-       8134,
-       8148,
-       8150,
-       8156,
-       8157,
-       8176,
-       8178,
-       8181,
-       8182,
-       8191,
-       8192,
-       8232,
-       8234,
-       8293,
-       8294,
-       8306,
-       8308,
-       8335,
-       8336,
-       8349,
-       8352,
-       8382,
-       8400,
-       8433,
-       8448,
-       8586,
-       8592,
-       9211,
-       9216,
-       9255,
-       9280,
-       9291,
-       9312,
-       11124,
-       11126,
-       11158,
-       11160,
-       11194,
-       11197,
-       11209,
-       11210,
-       11218,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11508,
-       11513,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11633,
-       11647,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11843,
-       11904,
-       11930,
-       11931,
-       12020,
-       12032,
-       12246,
-       12272,
-       12284,
-       12288,
-       12352,
-       12353,
-       12439,
-       12441,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12688,
-       12731,
-       12736,
-       12772,
-       12784,
-       12831,
-       12832,
-       13055,
-       13056,
-       19894,
-       19904,
-       40909,
-       40960,
-       42125,
-       42128,
-       42183,
-       42192,
-       42540,
-       42560,
-       42654,
-       42655,
-       42744,
-       42752,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43052,
-       43056,
-       43066,
-       43072,
-       43128,
-       43136,
-       43205,
-       43214,
-       43226,
-       43232,
-       43260,
-       43264,
-       43348,
-       43359,
-       43389,
-       43392,
-       43470,
-       43471,
-       43482,
-       43486,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43612,
-       43715,
-       43739,
-       43767,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43872,
-       43876,
-       43878,
-       43968,
-       44014,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       57344,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64450,
-       64467,
-       64832,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65022,
-       65024,
-       65050,
-       65056,
-       65070,
-       65072,
-       65107,
-       65108,
-       65127,
-       65128,
-       65132,
-       65136,
-       65141,
-       65142,
-       65277,
-       65279,
-       65280,
-       65281,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65504,
-       65511,
-       65512,
-       65519,
-       65529,
-       65534,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65792,
-       65795,
-       65799,
-       65844,
-       65847,
-       65933,
-       65936,
-       65948,
-       65952,
-       65953,
-       66000,
-       66046,
-       66176,
-       66205,
-       66208,
-       66257,
-       66272,
-       66300,
-       66304,
-       66340,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66463,
-       66500,
-       66504,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       66927,
-       66928,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67671,
-       67743,
-       67751,
-       67760,
-       67840,
-       67868,
-       67871,
-       67898,
-       67903,
-       67904,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68152,
-       68155,
-       68159,
-       68168,
-       68176,
-       68185,
-       68192,
-       68256,
-       68288,
-       68327,
-       68331,
-       68343,
-       68352,
-       68406,
-       68409,
-       68438,
-       68440,
-       68467,
-       68472,
-       68498,
-       68505,
-       68509,
-       68521,
-       68528,
-       68608,
-       68681,
-       69216,
-       69247,
-       69632,
-       69710,
-       69714,
-       69744,
-       69759,
-       69826,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69941,
-       69942,
-       69956,
-       69968,
-       70007,
-       70016,
-       70089,
-       70093,
-       70094,
-       70096,
-       70107,
-       70113,
-       70133,
-       70144,
-       70162,
-       70163,
-       70206,
-       70320,
-       70379,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70460,
-       70469,
-       70471,
-       70473,
-       70475,
-       70478,
-       70487,
-       70488,
-       70493,
-       70500,
-       70502,
-       70509,
-       70512,
-       70517,
-       70784,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71114,
-       71168,
-       71237,
-       71248,
-       71258,
-       71296,
-       71352,
-       71360,
-       71370,
-       71840,
-       71923,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       74864,
-       74869,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92782,
-       92784,
-       92880,
-       92910,
-       92912,
-       92918,
-       92928,
-       92998,
-       93008,
-       93018,
-       93019,
-       93026,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94095,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113820,
-       113828,
-       118784,
-       119030,
-       119040,
-       119079,
-       119081,
-       119262,
-       119296,
-       119366,
-       119552,
-       119639,
-       119648,
-       119666,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       125127,
-       125143,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       126704,
-       126706,
-       126976,
-       127020,
-       127024,
-       127124,
-       127136,
-       127151,
-       127153,
-       127168,
-       127169,
-       127184,
-       127185,
-       127222,
-       127232,
-       127245,
-       127248,
-       127279,
-       127280,
-       127340,
-       127344,
-       127387,
-       127462,
-       127491,
-       127504,
-       127547,
-       127552,
-       127561,
-       127568,
-       127570,
-       127744,
-       127789,
-       127792,
-       127870,
-       127872,
-       127951,
-       127956,
-       127992,
-       128000,
-       128255,
-       128256,
-       128331,
-       128336,
-       128378,
-       128379,
-       128420,
-       128421,
-       128579,
-       128581,
-       128720,
-       128736,
-       128749,
-       128752,
-       128756,
-       128768,
-       128884,
-       128896,
-       128981,
-       129024,
-       129036,
-       129040,
-       129096,
-       129104,
-       129114,
-       129120,
-       129160,
-       129168,
-       129198,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102,
-       917505,
-       917506,
-       917536,
-       917632,
-       917760,
-       918000,
-       983040,
-       1048574,
-       1048576,
-       1114110
+       0x0,
+       0x20,
+       0x7F,
+       0xA0,
+       0x378,
+       0x37A,
+       0x380,
+       0x384,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x560,
+       0x561,
+       0x588,
+       0x589,
+       0x58B,
+       0x58D,
+       0x590,
+       0x591,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F5,
+       0x600,
+       0x61D,
+       0x61E,
+       0x70E,
+       0x70F,
+       0x74B,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7FB,
+       0x800,
+       0x82E,
+       0x830,
+       0x83F,
+       0x840,
+       0x85C,
+       0x85E,
+       0x85F,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9FC,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF2,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB78,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBFB,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC78,
+       0xC80,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD76,
+       0xD79,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF5,
+       0xE01,
+       0xE3B,
+       0xE3F,
+       0xE5C,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFBE,
+       0xFCD,
+       0xFCE,
+       0xFDB,
+       0x1000,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x137D,
+       0x1380,
+       0x139A,
+       0x13A0,
+       0x13F5,
+       0x1400,
+       0x169D,
+       0x16A0,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1715,
+       0x1720,
+       0x1737,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x17F0,
+       0x17FA,
+       0x1800,
+       0x180F,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1940,
+       0x1941,
+       0x1944,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DB,
+       0x19DE,
+       0x1A1C,
+       0x1A1E,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA0,
+       0x1AAE,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B4C,
+       0x1B50,
+       0x1B7D,
+       0x1B80,
+       0x1BF4,
+       0x1BFC,
+       0x1C38,
+       0x1C3B,
+       0x1C4A,
+       0x1C4D,
+       0x1C80,
+       0x1CC0,
+       0x1CC8,
+       0x1CD0,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DF6,
+       0x1DFC,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FC5,
+       0x1FC6,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FDD,
+       0x1FF0,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFF,
+       0x2000,
+       0x2028,
+       0x202A,
+       0x2065,
+       0x2066,
+       0x2072,
+       0x2074,
+       0x208F,
+       0x2090,
+       0x209D,
+       0x20A0,
+       0x20BE,
+       0x20D0,
+       0x20F1,
+       0x2100,
+       0x218A,
+       0x2190,
+       0x23FB,
+       0x2400,
+       0x2427,
+       0x2440,
+       0x244B,
+       0x2460,
+       0x2B74,
+       0x2B76,
+       0x2B96,
+       0x2B98,
+       0x2BBA,
+       0x2BBD,
+       0x2BC9,
+       0x2BCA,
+       0x2BD2,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CF4,
+       0x2CF9,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D71,
+       0x2D7F,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E43,
+       0x2E80,
+       0x2E9A,
+       0x2E9B,
+       0x2EF4,
+       0x2F00,
+       0x2FD6,
+       0x2FF0,
+       0x2FFC,
+       0x3000,
+       0x3040,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x3190,
+       0x31BB,
+       0x31C0,
+       0x31E4,
+       0x31F0,
+       0x321F,
+       0x3220,
+       0x32FF,
+       0x3300,
+       0x4DB6,
+       0x4DC0,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA490,
+       0xA4C7,
+       0xA4D0,
+       0xA62C,
+       0xA640,
+       0xA69E,
+       0xA69F,
+       0xA6F8,
+       0xA700,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA82C,
+       0xA830,
+       0xA83A,
+       0xA840,
+       0xA878,
+       0xA880,
+       0xA8C5,
+       0xA8CE,
+       0xA8DA,
+       0xA8E0,
+       0xA8FC,
+       0xA900,
+       0xA954,
+       0xA95F,
+       0xA97D,
+       0xA980,
+       0xA9CE,
+       0xA9CF,
+       0xA9DA,
+       0xA9DE,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA5C,
+       0xAAC3,
+       0xAADB,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xE000,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBC2,
+       0xFBD3,
+       0xFD40,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFE,
+       0xFE00,
+       0xFE1A,
+       0xFE20,
+       0xFE2E,
+       0xFE30,
+       0xFE53,
+       0xFE54,
+       0xFE67,
+       0xFE68,
+       0xFE6C,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFEFF,
+       0xFF00,
+       0xFF01,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0xFFE0,
+       0xFFE7,
+       0xFFE8,
+       0xFFEF,
+       0xFFF9,
+       0xFFFE,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10100,
+       0x10103,
+       0x10107,
+       0x10134,
+       0x10137,
+       0x1018D,
+       0x10190,
+       0x1019C,
+       0x101A0,
+       0x101A1,
+       0x101D0,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102FC,
+       0x10300,
+       0x10324,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x1039F,
+       0x103C4,
+       0x103C8,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x1056F,
+       0x10570,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10857,
+       0x1089F,
+       0x108A7,
+       0x108B0,
+       0x10900,
+       0x1091C,
+       0x1091F,
+       0x1093A,
+       0x1093F,
+       0x10940,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A48,
+       0x10A50,
+       0x10A59,
+       0x10A60,
+       0x10AA0,
+       0x10AC0,
+       0x10AE7,
+       0x10AEB,
+       0x10AF7,
+       0x10B00,
+       0x10B36,
+       0x10B39,
+       0x10B56,
+       0x10B58,
+       0x10B73,
+       0x10B78,
+       0x10B92,
+       0x10B99,
+       0x10B9D,
+       0x10BA9,
+       0x10BB0,
+       0x10C00,
+       0x10C49,
+       0x10E60,
+       0x10E7F,
+       0x11000,
+       0x1104E,
+       0x11052,
+       0x11070,
+       0x1107F,
+       0x110C2,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11135,
+       0x11136,
+       0x11144,
+       0x11150,
+       0x11177,
+       0x11180,
+       0x111C9,
+       0x111CD,
+       0x111CE,
+       0x111D0,
+       0x111DB,
+       0x111E1,
+       0x111F5,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1123E,
+       0x112B0,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115CA,
+       0x11600,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118F3,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x12470,
+       0x12475,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16A6E,
+       0x16A70,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF6,
+       0x16B00,
+       0x16B46,
+       0x16B50,
+       0x16B5A,
+       0x16B5B,
+       0x16B62,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F8F,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9C,
+       0x1BCA4,
+       0x1D000,
+       0x1D0F6,
+       0x1D100,
+       0x1D127,
+       0x1D129,
+       0x1D1DE,
+       0x1D200,
+       0x1D246,
+       0x1D300,
+       0x1D357,
+       0x1D360,
+       0x1D372,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8C7,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1EEF0,
+       0x1EEF2,
+       0x1F000,
+       0x1F02C,
+       0x1F030,
+       0x1F094,
+       0x1F0A0,
+       0x1F0AF,
+       0x1F0B1,
+       0x1F0C0,
+       0x1F0C1,
+       0x1F0D0,
+       0x1F0D1,
+       0x1F0F6,
+       0x1F100,
+       0x1F10D,
+       0x1F110,
+       0x1F12F,
+       0x1F130,
+       0x1F16C,
+       0x1F170,
+       0x1F19B,
+       0x1F1E6,
+       0x1F203,
+       0x1F210,
+       0x1F23B,
+       0x1F240,
+       0x1F249,
+       0x1F250,
+       0x1F252,
+       0x1F300,
+       0x1F32D,
+       0x1F330,
+       0x1F37E,
+       0x1F380,
+       0x1F3CF,
+       0x1F3D4,
+       0x1F3F8,
+       0x1F400,
+       0x1F4FF,
+       0x1F500,
+       0x1F54B,
+       0x1F550,
+       0x1F57A,
+       0x1F57B,
+       0x1F5A4,
+       0x1F5A5,
+       0x1F643,
+       0x1F645,
+       0x1F6D0,
+       0x1F6E0,
+       0x1F6ED,
+       0x1F6F0,
+       0x1F6F4,
+       0x1F700,
+       0x1F774,
+       0x1F780,
+       0x1F7D5,
+       0x1F800,
+       0x1F80C,
+       0x1F810,
+       0x1F848,
+       0x1F850,
+       0x1F85A,
+       0x1F860,
+       0x1F888,
+       0x1F890,
+       0x1F8AE,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0001,
+       0xE0002,
+       0xE0020,
+       0xE0080,
+       0xE0100,
+       0xE01F0,
+       0xF0000,
+       0xFFFFE,
+       0x100000,
+       0x10FFFE
 };
 
 static const UV XPosixPunct_invlist[] = { /* for ASCII/Latin1 */
@@ -6674,307 +21148,307 @@ static const UV XPosixPunct_invlist[] = { /* for ASCII/Latin1 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       33,
-       48,
-       58,
-       65,
-       91,
-       97,
-       123,
-       127,
-       161,
-       162,
-       167,
-       168,
-       171,
-       172,
-       182,
-       184,
-       187,
-       188,
-       191,
-       192,
-       894,
-       895,
-       903,
-       904,
-       1370,
-       1376,
-       1417,
-       1419,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1523,
-       1525,
-       1545,
-       1547,
-       1548,
-       1550,
-       1563,
-       1564,
-       1566,
-       1568,
-       1642,
-       1646,
-       1748,
-       1749,
-       1792,
-       1806,
-       2039,
-       2042,
-       2096,
-       2111,
-       2142,
-       2143,
-       2404,
-       2406,
-       2416,
-       2417,
-       2800,
-       2801,
-       3572,
-       3573,
-       3663,
-       3664,
-       3674,
-       3676,
-       3844,
-       3859,
-       3860,
-       3861,
-       3898,
-       3902,
-       3973,
-       3974,
-       4048,
-       4053,
-       4057,
-       4059,
-       4170,
-       4176,
-       4347,
-       4348,
-       4960,
-       4969,
-       5120,
-       5121,
-       5741,
-       5743,
-       5787,
-       5789,
-       5867,
-       5870,
-       5941,
-       5943,
-       6100,
-       6103,
-       6104,
-       6107,
-       6144,
-       6155,
-       6468,
-       6470,
-       6686,
-       6688,
-       6816,
-       6823,
-       6824,
-       6830,
-       7002,
-       7009,
-       7164,
-       7168,
-       7227,
-       7232,
-       7294,
-       7296,
-       7360,
-       7368,
-       7379,
-       7380,
-       8208,
-       8232,
-       8240,
-       8260,
-       8261,
-       8274,
-       8275,
-       8287,
-       8317,
-       8319,
-       8333,
-       8335,
-       8968,
-       8972,
-       9001,
-       9003,
-       10088,
-       10102,
-       10181,
-       10183,
-       10214,
-       10224,
-       10627,
-       10649,
-       10712,
-       10716,
-       10748,
-       10750,
-       11513,
-       11517,
-       11518,
-       11520,
-       11632,
-       11633,
-       11776,
-       11823,
-       11824,
-       11843,
-       12289,
-       12292,
-       12296,
-       12306,
-       12308,
-       12320,
-       12336,
-       12337,
-       12349,
-       12350,
-       12448,
-       12449,
-       12539,
-       12540,
-       42238,
-       42240,
-       42509,
-       42512,
-       42611,
-       42612,
-       42622,
-       42623,
-       42738,
-       42744,
-       43124,
-       43128,
-       43214,
-       43216,
-       43256,
-       43259,
-       43310,
-       43312,
-       43359,
-       43360,
-       43457,
-       43470,
-       43486,
-       43488,
-       43612,
-       43616,
-       43742,
-       43744,
-       43760,
-       43762,
-       44011,
-       44012,
-       64830,
-       64832,
-       65040,
-       65050,
-       65072,
-       65107,
-       65108,
-       65122,
-       65123,
-       65124,
-       65128,
-       65129,
-       65130,
-       65132,
-       65281,
-       65284,
-       65285,
-       65291,
-       65292,
-       65296,
-       65306,
-       65308,
-       65311,
-       65313,
-       65339,
-       65342,
-       65343,
-       65344,
-       65371,
-       65372,
-       65373,
-       65374,
-       65375,
-       65382,
-       65792,
-       65795,
-       66463,
-       66464,
-       66512,
-       66513,
-       66927,
-       66928,
-       67671,
-       67672,
-       67871,
-       67872,
-       67903,
-       67904,
-       68176,
-       68185,
-       68223,
-       68224,
-       68336,
-       68343,
-       68409,
-       68416,
-       68505,
-       68509,
-       69703,
-       69710,
-       69819,
-       69821,
-       69822,
-       69826,
-       69952,
-       69956,
-       70004,
-       70006,
-       70085,
-       70089,
-       70093,
-       70094,
-       70200,
-       70206,
-       70854,
-       70855,
-       71105,
-       71114,
-       71233,
-       71236,
-       74864,
-       74869,
-       92782,
-       92784,
-       92917,
-       92918,
-       92983,
-       92988,
-       92996,
-       92997,
-       113823,
-       113824
+       0x0,
+       0x21,
+       0x30,
+       0x3A,
+       0x41,
+       0x5B,
+       0x61,
+       0x7B,
+       0x7F,
+       0xA1,
+       0xA2,
+       0xA7,
+       0xA8,
+       0xAB,
+       0xAC,
+       0xB6,
+       0xB8,
+       0xBB,
+       0xBC,
+       0xBF,
+       0xC0,
+       0x37E,
+       0x37F,
+       0x387,
+       0x388,
+       0x55A,
+       0x560,
+       0x589,
+       0x58B,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5F3,
+       0x5F5,
+       0x609,
+       0x60B,
+       0x60C,
+       0x60E,
+       0x61B,
+       0x61C,
+       0x61E,
+       0x620,
+       0x66A,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x700,
+       0x70E,
+       0x7F7,
+       0x7FA,
+       0x830,
+       0x83F,
+       0x85E,
+       0x85F,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0xAF0,
+       0xAF1,
+       0xDF4,
+       0xDF5,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xE5C,
+       0xF04,
+       0xF13,
+       0xF14,
+       0xF15,
+       0xF3A,
+       0xF3E,
+       0xF85,
+       0xF86,
+       0xFD0,
+       0xFD5,
+       0xFD9,
+       0xFDB,
+       0x104A,
+       0x1050,
+       0x10FB,
+       0x10FC,
+       0x1360,
+       0x1369,
+       0x1400,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x169B,
+       0x169D,
+       0x16EB,
+       0x16EE,
+       0x1735,
+       0x1737,
+       0x17D4,
+       0x17D7,
+       0x17D8,
+       0x17DB,
+       0x1800,
+       0x180B,
+       0x1944,
+       0x1946,
+       0x1A1E,
+       0x1A20,
+       0x1AA0,
+       0x1AA7,
+       0x1AA8,
+       0x1AAE,
+       0x1B5A,
+       0x1B61,
+       0x1BFC,
+       0x1C00,
+       0x1C3B,
+       0x1C40,
+       0x1C7E,
+       0x1C80,
+       0x1CC0,
+       0x1CC8,
+       0x1CD3,
+       0x1CD4,
+       0x2010,
+       0x2028,
+       0x2030,
+       0x2044,
+       0x2045,
+       0x2052,
+       0x2053,
+       0x205F,
+       0x207D,
+       0x207F,
+       0x208D,
+       0x208F,
+       0x2308,
+       0x230C,
+       0x2329,
+       0x232B,
+       0x2768,
+       0x2776,
+       0x27C5,
+       0x27C7,
+       0x27E6,
+       0x27F0,
+       0x2983,
+       0x2999,
+       0x29D8,
+       0x29DC,
+       0x29FC,
+       0x29FE,
+       0x2CF9,
+       0x2CFD,
+       0x2CFE,
+       0x2D00,
+       0x2D70,
+       0x2D71,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x2E43,
+       0x3001,
+       0x3004,
+       0x3008,
+       0x3012,
+       0x3014,
+       0x3020,
+       0x3030,
+       0x3031,
+       0x303D,
+       0x303E,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA6F2,
+       0xA6F8,
+       0xA874,
+       0xA878,
+       0xA8CE,
+       0xA8D0,
+       0xA8F8,
+       0xA8FB,
+       0xA92E,
+       0xA930,
+       0xA95F,
+       0xA960,
+       0xA9C1,
+       0xA9CE,
+       0xA9DE,
+       0xA9E0,
+       0xAA5C,
+       0xAA60,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xABEB,
+       0xABEC,
+       0xFD3E,
+       0xFD40,
+       0xFE10,
+       0xFE1A,
+       0xFE30,
+       0xFE53,
+       0xFE54,
+       0xFE62,
+       0xFE63,
+       0xFE64,
+       0xFE68,
+       0xFE69,
+       0xFE6A,
+       0xFE6C,
+       0xFF01,
+       0xFF04,
+       0xFF05,
+       0xFF0B,
+       0xFF0C,
+       0xFF10,
+       0xFF1A,
+       0xFF1C,
+       0xFF1F,
+       0xFF21,
+       0xFF3B,
+       0xFF3E,
+       0xFF3F,
+       0xFF40,
+       0xFF5B,
+       0xFF5C,
+       0xFF5D,
+       0xFF5E,
+       0xFF5F,
+       0xFF66,
+       0x10100,
+       0x10103,
+       0x1039F,
+       0x103A0,
+       0x103D0,
+       0x103D1,
+       0x1056F,
+       0x10570,
+       0x10857,
+       0x10858,
+       0x1091F,
+       0x10920,
+       0x1093F,
+       0x10940,
+       0x10A50,
+       0x10A59,
+       0x10A7F,
+       0x10A80,
+       0x10AF0,
+       0x10AF7,
+       0x10B39,
+       0x10B40,
+       0x10B99,
+       0x10B9D,
+       0x11047,
+       0x1104E,
+       0x110BB,
+       0x110BD,
+       0x110BE,
+       0x110C2,
+       0x11140,
+       0x11144,
+       0x11174,
+       0x11176,
+       0x111C5,
+       0x111C9,
+       0x111CD,
+       0x111CE,
+       0x11238,
+       0x1123E,
+       0x114C6,
+       0x114C7,
+       0x115C1,
+       0x115CA,
+       0x11641,
+       0x11644,
+       0x12470,
+       0x12475,
+       0x16A6E,
+       0x16A70,
+       0x16AF5,
+       0x16AF6,
+       0x16B37,
+       0x16B3C,
+       0x16B44,
+       0x16B45,
+       0x1BC9F,
+       0x1BCA0
 };
 
 static const UV XPosixSpace_invlist[] = { /* for ASCII/Latin1 */
@@ -6982,27 +21456,27 @@ static const UV XPosixSpace_invlist[] = { /* for ASCII/Latin1 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       9,
-       14,
-       32,
-       33,
-       133,
-       134,
-       160,
-       161,
-       5760,
-       5761,
-       8192,
-       8203,
-       8232,
-       8234,
-       8239,
-       8240,
-       8287,
-       8288,
-       12288,
-       12289
+       0x0,
+       0x9,
+       0xE,
+       0x20,
+       0x21,
+       0x85,
+       0x86,
+       0xA0,
+       0xA1,
+       0x1680,
+       0x1681,
+       0x2000,
+       0x200B,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x2030,
+       0x205F,
+       0x2060,
+       0x3000,
+       0x3001
 };
 
 static const UV XPosixUpper_invlist[] = { /* for ASCII/Latin1 */
@@ -7010,1261 +21484,1261 @@ static const UV XPosixUpper_invlist[] = { /* for ASCII/Latin1 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       65,
-       91,
-       192,
-       215,
-       216,
-       223,
-       256,
-       257,
-       258,
-       259,
-       260,
-       261,
-       262,
-       263,
-       264,
-       265,
-       266,
-       267,
-       268,
-       269,
-       270,
-       271,
-       272,
-       273,
-       274,
-       275,
-       276,
-       277,
-       278,
-       279,
-       280,
-       281,
-       282,
-       283,
-       284,
-       285,
-       286,
-       287,
-       288,
-       289,
-       290,
-       291,
-       292,
-       293,
-       294,
-       295,
-       296,
-       297,
-       298,
-       299,
-       300,
-       301,
-       302,
-       303,
-       304,
-       305,
-       306,
-       307,
-       308,
-       309,
-       310,
-       311,
-       313,
-       314,
-       315,
-       316,
-       317,
-       318,
-       319,
-       320,
-       321,
-       322,
-       323,
-       324,
-       325,
-       326,
-       327,
-       328,
-       330,
-       331,
-       332,
-       333,
-       334,
-       335,
-       336,
-       337,
-       338,
-       339,
-       340,
-       341,
-       342,
-       343,
-       344,
-       345,
-       346,
-       347,
-       348,
-       349,
-       350,
-       351,
-       352,
-       353,
-       354,
-       355,
-       356,
-       357,
-       358,
-       359,
-       360,
-       361,
-       362,
-       363,
-       364,
-       365,
-       366,
-       367,
-       368,
-       369,
-       370,
-       371,
-       372,
-       373,
-       374,
-       375,
-       376,
-       378,
-       379,
-       380,
-       381,
-       382,
-       385,
-       387,
-       388,
-       389,
-       390,
-       392,
-       393,
-       396,
-       398,
-       402,
-       403,
-       405,
-       406,
-       409,
-       412,
-       414,
-       415,
-       417,
-       418,
-       419,
-       420,
-       421,
-       422,
-       424,
-       425,
-       426,
-       428,
-       429,
-       430,
-       432,
-       433,
-       436,
-       437,
-       438,
-       439,
-       441,
-       444,
-       445,
-       452,
-       453,
-       455,
-       456,
-       458,
-       459,
-       461,
-       462,
-       463,
-       464,
-       465,
-       466,
-       467,
-       468,
-       469,
-       470,
-       471,
-       472,
-       473,
-       474,
-       475,
-       476,
-       478,
-       479,
-       480,
-       481,
-       482,
-       483,
-       484,
-       485,
-       486,
-       487,
-       488,
-       489,
-       490,
-       491,
-       492,
-       493,
-       494,
-       495,
-       497,
-       498,
-       500,
-       501,
-       502,
-       505,
-       506,
-       507,
-       508,
-       509,
-       510,
-       511,
-       512,
-       513,
-       514,
-       515,
-       516,
-       517,
-       518,
-       519,
-       520,
-       521,
-       522,
-       523,
-       524,
-       525,
-       526,
-       527,
-       528,
-       529,
-       530,
-       531,
-       532,
-       533,
-       534,
-       535,
-       536,
-       537,
-       538,
-       539,
-       540,
-       541,
-       542,
-       543,
-       544,
-       545,
-       546,
-       547,
-       548,
-       549,
-       550,
-       551,
-       552,
-       553,
-       554,
-       555,
-       556,
-       557,
-       558,
-       559,
-       560,
-       561,
-       562,
-       563,
-       570,
-       572,
-       573,
-       575,
-       577,
-       578,
-       579,
-       583,
-       584,
-       585,
-       586,
-       587,
-       588,
-       589,
-       590,
-       591,
-       880,
-       881,
-       882,
-       883,
-       886,
-       887,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       912,
-       913,
-       930,
-       931,
-       940,
-       975,
-       976,
-       978,
-       981,
-       984,
-       985,
-       986,
-       987,
-       988,
-       989,
-       990,
-       991,
-       992,
-       993,
-       994,
-       995,
-       996,
-       997,
-       998,
-       999,
-       1000,
-       1001,
-       1002,
-       1003,
-       1004,
-       1005,
-       1006,
-       1007,
-       1012,
-       1013,
-       1015,
-       1016,
-       1017,
-       1019,
-       1021,
-       1072,
-       1120,
-       1121,
-       1122,
-       1123,
-       1124,
-       1125,
-       1126,
-       1127,
-       1128,
-       1129,
-       1130,
-       1131,
-       1132,
-       1133,
-       1134,
-       1135,
-       1136,
-       1137,
-       1138,
-       1139,
-       1140,
-       1141,
-       1142,
-       1143,
-       1144,
-       1145,
-       1146,
-       1147,
-       1148,
-       1149,
-       1150,
-       1151,
-       1152,
-       1153,
-       1162,
-       1163,
-       1164,
-       1165,
-       1166,
-       1167,
-       1168,
-       1169,
-       1170,
-       1171,
-       1172,
-       1173,
-       1174,
-       1175,
-       1176,
-       1177,
-       1178,
-       1179,
-       1180,
-       1181,
-       1182,
-       1183,
-       1184,
-       1185,
-       1186,
-       1187,
-       1188,
-       1189,
-       1190,
-       1191,
-       1192,
-       1193,
-       1194,
-       1195,
-       1196,
-       1197,
-       1198,
-       1199,
-       1200,
-       1201,
-       1202,
-       1203,
-       1204,
-       1205,
-       1206,
-       1207,
-       1208,
-       1209,
-       1210,
-       1211,
-       1212,
-       1213,
-       1214,
-       1215,
-       1216,
-       1218,
-       1219,
-       1220,
-       1221,
-       1222,
-       1223,
-       1224,
-       1225,
-       1226,
-       1227,
-       1228,
-       1229,
-       1230,
-       1232,
-       1233,
-       1234,
-       1235,
-       1236,
-       1237,
-       1238,
-       1239,
-       1240,
-       1241,
-       1242,
-       1243,
-       1244,
-       1245,
-       1246,
-       1247,
-       1248,
-       1249,
-       1250,
-       1251,
-       1252,
-       1253,
-       1254,
-       1255,
-       1256,
-       1257,
-       1258,
-       1259,
-       1260,
-       1261,
-       1262,
-       1263,
-       1264,
-       1265,
-       1266,
-       1267,
-       1268,
-       1269,
-       1270,
-       1271,
-       1272,
-       1273,
-       1274,
-       1275,
-       1276,
-       1277,
-       1278,
-       1279,
-       1280,
-       1281,
-       1282,
-       1283,
-       1284,
-       1285,
-       1286,
-       1287,
-       1288,
-       1289,
-       1290,
-       1291,
-       1292,
-       1293,
-       1294,
-       1295,
-       1296,
-       1297,
-       1298,
-       1299,
-       1300,
-       1301,
-       1302,
-       1303,
-       1304,
-       1305,
-       1306,
-       1307,
-       1308,
-       1309,
-       1310,
-       1311,
-       1312,
-       1313,
-       1314,
-       1315,
-       1316,
-       1317,
-       1318,
-       1319,
-       1320,
-       1321,
-       1322,
-       1323,
-       1324,
-       1325,
-       1326,
-       1327,
-       1329,
-       1367,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       7680,
-       7681,
-       7682,
-       7683,
-       7684,
-       7685,
-       7686,
-       7687,
-       7688,
-       7689,
-       7690,
-       7691,
-       7692,
-       7693,
-       7694,
-       7695,
-       7696,
-       7697,
-       7698,
-       7699,
-       7700,
-       7701,
-       7702,
-       7703,
-       7704,
-       7705,
-       7706,
-       7707,
-       7708,
-       7709,
-       7710,
-       7711,
-       7712,
-       7713,
-       7714,
-       7715,
-       7716,
-       7717,
-       7718,
-       7719,
-       7720,
-       7721,
-       7722,
-       7723,
-       7724,
-       7725,
-       7726,
-       7727,
-       7728,
-       7729,
-       7730,
-       7731,
-       7732,
-       7733,
-       7734,
-       7735,
-       7736,
-       7737,
-       7738,
-       7739,
-       7740,
-       7741,
-       7742,
-       7743,
-       7744,
-       7745,
-       7746,
-       7747,
-       7748,
-       7749,
-       7750,
-       7751,
-       7752,
-       7753,
-       7754,
-       7755,
-       7756,
-       7757,
-       7758,
-       7759,
-       7760,
-       7761,
-       7762,
-       7763,
-       7764,
-       7765,
-       7766,
-       7767,
-       7768,
-       7769,
-       7770,
-       7771,
-       7772,
-       7773,
-       7774,
-       7775,
-       7776,
-       7777,
-       7778,
-       7779,
-       7780,
-       7781,
-       7782,
-       7783,
-       7784,
-       7785,
-       7786,
-       7787,
-       7788,
-       7789,
-       7790,
-       7791,
-       7792,
-       7793,
-       7794,
-       7795,
-       7796,
-       7797,
-       7798,
-       7799,
-       7800,
-       7801,
-       7802,
-       7803,
-       7804,
-       7805,
-       7806,
-       7807,
-       7808,
-       7809,
-       7810,
-       7811,
-       7812,
-       7813,
-       7814,
-       7815,
-       7816,
-       7817,
-       7818,
-       7819,
-       7820,
-       7821,
-       7822,
-       7823,
-       7824,
-       7825,
-       7826,
-       7827,
-       7828,
-       7829,
-       7838,
-       7839,
-       7840,
-       7841,
-       7842,
-       7843,
-       7844,
-       7845,
-       7846,
-       7847,
-       7848,
-       7849,
-       7850,
-       7851,
-       7852,
-       7853,
-       7854,
-       7855,
-       7856,
-       7857,
-       7858,
-       7859,
-       7860,
-       7861,
-       7862,
-       7863,
-       7864,
-       7865,
-       7866,
-       7867,
-       7868,
-       7869,
-       7870,
-       7871,
-       7872,
-       7873,
-       7874,
-       7875,
-       7876,
-       7877,
-       7878,
-       7879,
-       7880,
-       7881,
-       7882,
-       7883,
-       7884,
-       7885,
-       7886,
-       7887,
-       7888,
-       7889,
-       7890,
-       7891,
-       7892,
-       7893,
-       7894,
-       7895,
-       7896,
-       7897,
-       7898,
-       7899,
-       7900,
-       7901,
-       7902,
-       7903,
-       7904,
-       7905,
-       7906,
-       7907,
-       7908,
-       7909,
-       7910,
-       7911,
-       7912,
-       7913,
-       7914,
-       7915,
-       7916,
-       7917,
-       7918,
-       7919,
-       7920,
-       7921,
-       7922,
-       7923,
-       7924,
-       7925,
-       7926,
-       7927,
-       7928,
-       7929,
-       7930,
-       7931,
-       7932,
-       7933,
-       7934,
-       7935,
-       7944,
-       7952,
-       7960,
-       7966,
-       7976,
-       7984,
-       7992,
-       8000,
-       8008,
-       8014,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8032,
-       8040,
-       8048,
-       8120,
-       8124,
-       8136,
-       8140,
-       8152,
-       8156,
-       8168,
-       8173,
-       8184,
-       8188,
-       8450,
-       8451,
-       8455,
-       8456,
-       8459,
-       8462,
-       8464,
-       8467,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8496,
-       8500,
-       8510,
-       8512,
-       8517,
-       8518,
-       8544,
-       8560,
-       8579,
-       8580,
-       9398,
-       9424,
-       11264,
-       11311,
-       11360,
-       11361,
-       11362,
-       11365,
-       11367,
-       11368,
-       11369,
-       11370,
-       11371,
-       11372,
-       11373,
-       11377,
-       11378,
-       11379,
-       11381,
-       11382,
-       11390,
-       11393,
-       11394,
-       11395,
-       11396,
-       11397,
-       11398,
-       11399,
-       11400,
-       11401,
-       11402,
-       11403,
-       11404,
-       11405,
-       11406,
-       11407,
-       11408,
-       11409,
-       11410,
-       11411,
-       11412,
-       11413,
-       11414,
-       11415,
-       11416,
-       11417,
-       11418,
-       11419,
-       11420,
-       11421,
-       11422,
-       11423,
-       11424,
-       11425,
-       11426,
-       11427,
-       11428,
-       11429,
-       11430,
-       11431,
-       11432,
-       11433,
-       11434,
-       11435,
-       11436,
-       11437,
-       11438,
-       11439,
-       11440,
-       11441,
-       11442,
-       11443,
-       11444,
-       11445,
-       11446,
-       11447,
-       11448,
-       11449,
-       11450,
-       11451,
-       11452,
-       11453,
-       11454,
-       11455,
-       11456,
-       11457,
-       11458,
-       11459,
-       11460,
-       11461,
-       11462,
-       11463,
-       11464,
-       11465,
-       11466,
-       11467,
-       11468,
-       11469,
-       11470,
-       11471,
-       11472,
-       11473,
-       11474,
-       11475,
-       11476,
-       11477,
-       11478,
-       11479,
-       11480,
-       11481,
-       11482,
-       11483,
-       11484,
-       11485,
-       11486,
-       11487,
-       11488,
-       11489,
-       11490,
-       11491,
-       11499,
-       11500,
-       11501,
-       11502,
-       11506,
-       11507,
-       42560,
-       42561,
-       42562,
-       42563,
-       42564,
-       42565,
-       42566,
-       42567,
-       42568,
-       42569,
-       42570,
-       42571,
-       42572,
-       42573,
-       42574,
-       42575,
-       42576,
-       42577,
-       42578,
-       42579,
-       42580,
-       42581,
-       42582,
-       42583,
-       42584,
-       42585,
-       42586,
-       42587,
-       42588,
-       42589,
-       42590,
-       42591,
-       42592,
-       42593,
-       42594,
-       42595,
-       42596,
-       42597,
-       42598,
-       42599,
-       42600,
-       42601,
-       42602,
-       42603,
-       42604,
-       42605,
-       42624,
-       42625,
-       42626,
-       42627,
-       42628,
-       42629,
-       42630,
-       42631,
-       42632,
-       42633,
-       42634,
-       42635,
-       42636,
-       42637,
-       42638,
-       42639,
-       42640,
-       42641,
-       42642,
-       42643,
-       42644,
-       42645,
-       42646,
-       42647,
-       42648,
-       42649,
-       42650,
-       42651,
-       42786,
-       42787,
-       42788,
-       42789,
-       42790,
-       42791,
-       42792,
-       42793,
-       42794,
-       42795,
-       42796,
-       42797,
-       42798,
-       42799,
-       42802,
-       42803,
-       42804,
-       42805,
-       42806,
-       42807,
-       42808,
-       42809,
-       42810,
-       42811,
-       42812,
-       42813,
-       42814,
-       42815,
-       42816,
-       42817,
-       42818,
-       42819,
-       42820,
-       42821,
-       42822,
-       42823,
-       42824,
-       42825,
-       42826,
-       42827,
-       42828,
-       42829,
-       42830,
-       42831,
-       42832,
-       42833,
-       42834,
-       42835,
-       42836,
-       42837,
-       42838,
-       42839,
-       42840,
-       42841,
-       42842,
-       42843,
-       42844,
-       42845,
-       42846,
-       42847,
-       42848,
-       42849,
-       42850,
-       42851,
-       42852,
-       42853,
-       42854,
-       42855,
-       42856,
-       42857,
-       42858,
-       42859,
-       42860,
-       42861,
-       42862,
-       42863,
-       42873,
-       42874,
-       42875,
-       42876,
-       42877,
-       42879,
-       42880,
-       42881,
-       42882,
-       42883,
-       42884,
-       42885,
-       42886,
-       42887,
-       42891,
-       42892,
-       42893,
-       42894,
-       42896,
-       42897,
-       42898,
-       42899,
-       42902,
-       42903,
-       42904,
-       42905,
-       42906,
-       42907,
-       42908,
-       42909,
-       42910,
-       42911,
-       42912,
-       42913,
-       42914,
-       42915,
-       42916,
-       42917,
-       42918,
-       42919,
-       42920,
-       42921,
-       42922,
-       42926,
-       42928,
-       42930,
-       65313,
-       65339,
-       66560,
-       66600,
-       71840,
-       71872,
-       119808,
-       119834,
-       119860,
-       119886,
-       119912,
-       119938,
-       119964,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119990,
-       120016,
-       120042,
-       120068,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120120,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120172,
-       120198,
-       120224,
-       120250,
-       120276,
-       120302,
-       120328,
-       120354,
-       120380,
-       120406,
-       120432,
-       120458,
-       120488,
-       120513,
-       120546,
-       120571,
-       120604,
-       120629,
-       120662,
-       120687,
-       120720,
-       120745,
-       120778,
-       120779,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370
+       0x0,
+       0x41,
+       0x5B,
+       0xC0,
+       0xD7,
+       0xD8,
+       0xDF,
+       0x100,
+       0x101,
+       0x102,
+       0x103,
+       0x104,
+       0x105,
+       0x106,
+       0x107,
+       0x108,
+       0x109,
+       0x10A,
+       0x10B,
+       0x10C,
+       0x10D,
+       0x10E,
+       0x10F,
+       0x110,
+       0x111,
+       0x112,
+       0x113,
+       0x114,
+       0x115,
+       0x116,
+       0x117,
+       0x118,
+       0x119,
+       0x11A,
+       0x11B,
+       0x11C,
+       0x11D,
+       0x11E,
+       0x11F,
+       0x120,
+       0x121,
+       0x122,
+       0x123,
+       0x124,
+       0x125,
+       0x126,
+       0x127,
+       0x128,
+       0x129,
+       0x12A,
+       0x12B,
+       0x12C,
+       0x12D,
+       0x12E,
+       0x12F,
+       0x130,
+       0x131,
+       0x132,
+       0x133,
+       0x134,
+       0x135,
+       0x136,
+       0x137,
+       0x139,
+       0x13A,
+       0x13B,
+       0x13C,
+       0x13D,
+       0x13E,
+       0x13F,
+       0x140,
+       0x141,
+       0x142,
+       0x143,
+       0x144,
+       0x145,
+       0x146,
+       0x147,
+       0x148,
+       0x14A,
+       0x14B,
+       0x14C,
+       0x14D,
+       0x14E,
+       0x14F,
+       0x150,
+       0x151,
+       0x152,
+       0x153,
+       0x154,
+       0x155,
+       0x156,
+       0x157,
+       0x158,
+       0x159,
+       0x15A,
+       0x15B,
+       0x15C,
+       0x15D,
+       0x15E,
+       0x15F,
+       0x160,
+       0x161,
+       0x162,
+       0x163,
+       0x164,
+       0x165,
+       0x166,
+       0x167,
+       0x168,
+       0x169,
+       0x16A,
+       0x16B,
+       0x16C,
+       0x16D,
+       0x16E,
+       0x16F,
+       0x170,
+       0x171,
+       0x172,
+       0x173,
+       0x174,
+       0x175,
+       0x176,
+       0x177,
+       0x178,
+       0x17A,
+       0x17B,
+       0x17C,
+       0x17D,
+       0x17E,
+       0x181,
+       0x183,
+       0x184,
+       0x185,
+       0x186,
+       0x188,
+       0x189,
+       0x18C,
+       0x18E,
+       0x192,
+       0x193,
+       0x195,
+       0x196,
+       0x199,
+       0x19C,
+       0x19E,
+       0x19F,
+       0x1A1,
+       0x1A2,
+       0x1A3,
+       0x1A4,
+       0x1A5,
+       0x1A6,
+       0x1A8,
+       0x1A9,
+       0x1AA,
+       0x1AC,
+       0x1AD,
+       0x1AE,
+       0x1B0,
+       0x1B1,
+       0x1B4,
+       0x1B5,
+       0x1B6,
+       0x1B7,
+       0x1B9,
+       0x1BC,
+       0x1BD,
+       0x1C4,
+       0x1C5,
+       0x1C7,
+       0x1C8,
+       0x1CA,
+       0x1CB,
+       0x1CD,
+       0x1CE,
+       0x1CF,
+       0x1D0,
+       0x1D1,
+       0x1D2,
+       0x1D3,
+       0x1D4,
+       0x1D5,
+       0x1D6,
+       0x1D7,
+       0x1D8,
+       0x1D9,
+       0x1DA,
+       0x1DB,
+       0x1DC,
+       0x1DE,
+       0x1DF,
+       0x1E0,
+       0x1E1,
+       0x1E2,
+       0x1E3,
+       0x1E4,
+       0x1E5,
+       0x1E6,
+       0x1E7,
+       0x1E8,
+       0x1E9,
+       0x1EA,
+       0x1EB,
+       0x1EC,
+       0x1ED,
+       0x1EE,
+       0x1EF,
+       0x1F1,
+       0x1F2,
+       0x1F4,
+       0x1F5,
+       0x1F6,
+       0x1F9,
+       0x1FA,
+       0x1FB,
+       0x1FC,
+       0x1FD,
+       0x1FE,
+       0x1FF,
+       0x200,
+       0x201,
+       0x202,
+       0x203,
+       0x204,
+       0x205,
+       0x206,
+       0x207,
+       0x208,
+       0x209,
+       0x20A,
+       0x20B,
+       0x20C,
+       0x20D,
+       0x20E,
+       0x20F,
+       0x210,
+       0x211,
+       0x212,
+       0x213,
+       0x214,
+       0x215,
+       0x216,
+       0x217,
+       0x218,
+       0x219,
+       0x21A,
+       0x21B,
+       0x21C,
+       0x21D,
+       0x21E,
+       0x21F,
+       0x220,
+       0x221,
+       0x222,
+       0x223,
+       0x224,
+       0x225,
+       0x226,
+       0x227,
+       0x228,
+       0x229,
+       0x22A,
+       0x22B,
+       0x22C,
+       0x22D,
+       0x22E,
+       0x22F,
+       0x230,
+       0x231,
+       0x232,
+       0x233,
+       0x23A,
+       0x23C,
+       0x23D,
+       0x23F,
+       0x241,
+       0x242,
+       0x243,
+       0x247,
+       0x248,
+       0x249,
+       0x24A,
+       0x24B,
+       0x24C,
+       0x24D,
+       0x24E,
+       0x24F,
+       0x370,
+       0x371,
+       0x372,
+       0x373,
+       0x376,
+       0x377,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x390,
+       0x391,
+       0x3A2,
+       0x3A3,
+       0x3AC,
+       0x3CF,
+       0x3D0,
+       0x3D2,
+       0x3D5,
+       0x3D8,
+       0x3D9,
+       0x3DA,
+       0x3DB,
+       0x3DC,
+       0x3DD,
+       0x3DE,
+       0x3DF,
+       0x3E0,
+       0x3E1,
+       0x3E2,
+       0x3E3,
+       0x3E4,
+       0x3E5,
+       0x3E6,
+       0x3E7,
+       0x3E8,
+       0x3E9,
+       0x3EA,
+       0x3EB,
+       0x3EC,
+       0x3ED,
+       0x3EE,
+       0x3EF,
+       0x3F4,
+       0x3F5,
+       0x3F7,
+       0x3F8,
+       0x3F9,
+       0x3FB,
+       0x3FD,
+       0x430,
+       0x460,
+       0x461,
+       0x462,
+       0x463,
+       0x464,
+       0x465,
+       0x466,
+       0x467,
+       0x468,
+       0x469,
+       0x46A,
+       0x46B,
+       0x46C,
+       0x46D,
+       0x46E,
+       0x46F,
+       0x470,
+       0x471,
+       0x472,
+       0x473,
+       0x474,
+       0x475,
+       0x476,
+       0x477,
+       0x478,
+       0x479,
+       0x47A,
+       0x47B,
+       0x47C,
+       0x47D,
+       0x47E,
+       0x47F,
+       0x480,
+       0x481,
+       0x48A,
+       0x48B,
+       0x48C,
+       0x48D,
+       0x48E,
+       0x48F,
+       0x490,
+       0x491,
+       0x492,
+       0x493,
+       0x494,
+       0x495,
+       0x496,
+       0x497,
+       0x498,
+       0x499,
+       0x49A,
+       0x49B,
+       0x49C,
+       0x49D,
+       0x49E,
+       0x49F,
+       0x4A0,
+       0x4A1,
+       0x4A2,
+       0x4A3,
+       0x4A4,
+       0x4A5,
+       0x4A6,
+       0x4A7,
+       0x4A8,
+       0x4A9,
+       0x4AA,
+       0x4AB,
+       0x4AC,
+       0x4AD,
+       0x4AE,
+       0x4AF,
+       0x4B0,
+       0x4B1,
+       0x4B2,
+       0x4B3,
+       0x4B4,
+       0x4B5,
+       0x4B6,
+       0x4B7,
+       0x4B8,
+       0x4B9,
+       0x4BA,
+       0x4BB,
+       0x4BC,
+       0x4BD,
+       0x4BE,
+       0x4BF,
+       0x4C0,
+       0x4C2,
+       0x4C3,
+       0x4C4,
+       0x4C5,
+       0x4C6,
+       0x4C7,
+       0x4C8,
+       0x4C9,
+       0x4CA,
+       0x4CB,
+       0x4CC,
+       0x4CD,
+       0x4CE,
+       0x4D0,
+       0x4D1,
+       0x4D2,
+       0x4D3,
+       0x4D4,
+       0x4D5,
+       0x4D6,
+       0x4D7,
+       0x4D8,
+       0x4D9,
+       0x4DA,
+       0x4DB,
+       0x4DC,
+       0x4DD,
+       0x4DE,
+       0x4DF,
+       0x4E0,
+       0x4E1,
+       0x4E2,
+       0x4E3,
+       0x4E4,
+       0x4E5,
+       0x4E6,
+       0x4E7,
+       0x4E8,
+       0x4E9,
+       0x4EA,
+       0x4EB,
+       0x4EC,
+       0x4ED,
+       0x4EE,
+       0x4EF,
+       0x4F0,
+       0x4F1,
+       0x4F2,
+       0x4F3,
+       0x4F4,
+       0x4F5,
+       0x4F6,
+       0x4F7,
+       0x4F8,
+       0x4F9,
+       0x4FA,
+       0x4FB,
+       0x4FC,
+       0x4FD,
+       0x4FE,
+       0x4FF,
+       0x500,
+       0x501,
+       0x502,
+       0x503,
+       0x504,
+       0x505,
+       0x506,
+       0x507,
+       0x508,
+       0x509,
+       0x50A,
+       0x50B,
+       0x50C,
+       0x50D,
+       0x50E,
+       0x50F,
+       0x510,
+       0x511,
+       0x512,
+       0x513,
+       0x514,
+       0x515,
+       0x516,
+       0x517,
+       0x518,
+       0x519,
+       0x51A,
+       0x51B,
+       0x51C,
+       0x51D,
+       0x51E,
+       0x51F,
+       0x520,
+       0x521,
+       0x522,
+       0x523,
+       0x524,
+       0x525,
+       0x526,
+       0x527,
+       0x528,
+       0x529,
+       0x52A,
+       0x52B,
+       0x52C,
+       0x52D,
+       0x52E,
+       0x52F,
+       0x531,
+       0x557,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x1E00,
+       0x1E01,
+       0x1E02,
+       0x1E03,
+       0x1E04,
+       0x1E05,
+       0x1E06,
+       0x1E07,
+       0x1E08,
+       0x1E09,
+       0x1E0A,
+       0x1E0B,
+       0x1E0C,
+       0x1E0D,
+       0x1E0E,
+       0x1E0F,
+       0x1E10,
+       0x1E11,
+       0x1E12,
+       0x1E13,
+       0x1E14,
+       0x1E15,
+       0x1E16,
+       0x1E17,
+       0x1E18,
+       0x1E19,
+       0x1E1A,
+       0x1E1B,
+       0x1E1C,
+       0x1E1D,
+       0x1E1E,
+       0x1E1F,
+       0x1E20,
+       0x1E21,
+       0x1E22,
+       0x1E23,
+       0x1E24,
+       0x1E25,
+       0x1E26,
+       0x1E27,
+       0x1E28,
+       0x1E29,
+       0x1E2A,
+       0x1E2B,
+       0x1E2C,
+       0x1E2D,
+       0x1E2E,
+       0x1E2F,
+       0x1E30,
+       0x1E31,
+       0x1E32,
+       0x1E33,
+       0x1E34,
+       0x1E35,
+       0x1E36,
+       0x1E37,
+       0x1E38,
+       0x1E39,
+       0x1E3A,
+       0x1E3B,
+       0x1E3C,
+       0x1E3D,
+       0x1E3E,
+       0x1E3F,
+       0x1E40,
+       0x1E41,
+       0x1E42,
+       0x1E43,
+       0x1E44,
+       0x1E45,
+       0x1E46,
+       0x1E47,
+       0x1E48,
+       0x1E49,
+       0x1E4A,
+       0x1E4B,
+       0x1E4C,
+       0x1E4D,
+       0x1E4E,
+       0x1E4F,
+       0x1E50,
+       0x1E51,
+       0x1E52,
+       0x1E53,
+       0x1E54,
+       0x1E55,
+       0x1E56,
+       0x1E57,
+       0x1E58,
+       0x1E59,
+       0x1E5A,
+       0x1E5B,
+       0x1E5C,
+       0x1E5D,
+       0x1E5E,
+       0x1E5F,
+       0x1E60,
+       0x1E61,
+       0x1E62,
+       0x1E63,
+       0x1E64,
+       0x1E65,
+       0x1E66,
+       0x1E67,
+       0x1E68,
+       0x1E69,
+       0x1E6A,
+       0x1E6B,
+       0x1E6C,
+       0x1E6D,
+       0x1E6E,
+       0x1E6F,
+       0x1E70,
+       0x1E71,
+       0x1E72,
+       0x1E73,
+       0x1E74,
+       0x1E75,
+       0x1E76,
+       0x1E77,
+       0x1E78,
+       0x1E79,
+       0x1E7A,
+       0x1E7B,
+       0x1E7C,
+       0x1E7D,
+       0x1E7E,
+       0x1E7F,
+       0x1E80,
+       0x1E81,
+       0x1E82,
+       0x1E83,
+       0x1E84,
+       0x1E85,
+       0x1E86,
+       0x1E87,
+       0x1E88,
+       0x1E89,
+       0x1E8A,
+       0x1E8B,
+       0x1E8C,
+       0x1E8D,
+       0x1E8E,
+       0x1E8F,
+       0x1E90,
+       0x1E91,
+       0x1E92,
+       0x1E93,
+       0x1E94,
+       0x1E95,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1EA1,
+       0x1EA2,
+       0x1EA3,
+       0x1EA4,
+       0x1EA5,
+       0x1EA6,
+       0x1EA7,
+       0x1EA8,
+       0x1EA9,
+       0x1EAA,
+       0x1EAB,
+       0x1EAC,
+       0x1EAD,
+       0x1EAE,
+       0x1EAF,
+       0x1EB0,
+       0x1EB1,
+       0x1EB2,
+       0x1EB3,
+       0x1EB4,
+       0x1EB5,
+       0x1EB6,
+       0x1EB7,
+       0x1EB8,
+       0x1EB9,
+       0x1EBA,
+       0x1EBB,
+       0x1EBC,
+       0x1EBD,
+       0x1EBE,
+       0x1EBF,
+       0x1EC0,
+       0x1EC1,
+       0x1EC2,
+       0x1EC3,
+       0x1EC4,
+       0x1EC5,
+       0x1EC6,
+       0x1EC7,
+       0x1EC8,
+       0x1EC9,
+       0x1ECA,
+       0x1ECB,
+       0x1ECC,
+       0x1ECD,
+       0x1ECE,
+       0x1ECF,
+       0x1ED0,
+       0x1ED1,
+       0x1ED2,
+       0x1ED3,
+       0x1ED4,
+       0x1ED5,
+       0x1ED6,
+       0x1ED7,
+       0x1ED8,
+       0x1ED9,
+       0x1EDA,
+       0x1EDB,
+       0x1EDC,
+       0x1EDD,
+       0x1EDE,
+       0x1EDF,
+       0x1EE0,
+       0x1EE1,
+       0x1EE2,
+       0x1EE3,
+       0x1EE4,
+       0x1EE5,
+       0x1EE6,
+       0x1EE7,
+       0x1EE8,
+       0x1EE9,
+       0x1EEA,
+       0x1EEB,
+       0x1EEC,
+       0x1EED,
+       0x1EEE,
+       0x1EEF,
+       0x1EF0,
+       0x1EF1,
+       0x1EF2,
+       0x1EF3,
+       0x1EF4,
+       0x1EF5,
+       0x1EF6,
+       0x1EF7,
+       0x1EF8,
+       0x1EF9,
+       0x1EFA,
+       0x1EFB,
+       0x1EFC,
+       0x1EFD,
+       0x1EFE,
+       0x1EFF,
+       0x1F08,
+       0x1F10,
+       0x1F18,
+       0x1F1E,
+       0x1F28,
+       0x1F30,
+       0x1F38,
+       0x1F40,
+       0x1F48,
+       0x1F4E,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1FB8,
+       0x1FBC,
+       0x1FC8,
+       0x1FCC,
+       0x1FD8,
+       0x1FDC,
+       0x1FE8,
+       0x1FED,
+       0x1FF8,
+       0x1FFC,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210B,
+       0x210E,
+       0x2110,
+       0x2113,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x2130,
+       0x2134,
+       0x213E,
+       0x2140,
+       0x2145,
+       0x2146,
+       0x2160,
+       0x2170,
+       0x2183,
+       0x2184,
+       0x24B6,
+       0x24D0,
+       0x2C00,
+       0x2C2F,
+       0x2C60,
+       0x2C61,
+       0x2C62,
+       0x2C65,
+       0x2C67,
+       0x2C68,
+       0x2C69,
+       0x2C6A,
+       0x2C6B,
+       0x2C6C,
+       0x2C6D,
+       0x2C71,
+       0x2C72,
+       0x2C73,
+       0x2C75,
+       0x2C76,
+       0x2C7E,
+       0x2C81,
+       0x2C82,
+       0x2C83,
+       0x2C84,
+       0x2C85,
+       0x2C86,
+       0x2C87,
+       0x2C88,
+       0x2C89,
+       0x2C8A,
+       0x2C8B,
+       0x2C8C,
+       0x2C8D,
+       0x2C8E,
+       0x2C8F,
+       0x2C90,
+       0x2C91,
+       0x2C92,
+       0x2C93,
+       0x2C94,
+       0x2C95,
+       0x2C96,
+       0x2C97,
+       0x2C98,
+       0x2C99,
+       0x2C9A,
+       0x2C9B,
+       0x2C9C,
+       0x2C9D,
+       0x2C9E,
+       0x2C9F,
+       0x2CA0,
+       0x2CA1,
+       0x2CA2,
+       0x2CA3,
+       0x2CA4,
+       0x2CA5,
+       0x2CA6,
+       0x2CA7,
+       0x2CA8,
+       0x2CA9,
+       0x2CAA,
+       0x2CAB,
+       0x2CAC,
+       0x2CAD,
+       0x2CAE,
+       0x2CAF,
+       0x2CB0,
+       0x2CB1,
+       0x2CB2,
+       0x2CB3,
+       0x2CB4,
+       0x2CB5,
+       0x2CB6,
+       0x2CB7,
+       0x2CB8,
+       0x2CB9,
+       0x2CBA,
+       0x2CBB,
+       0x2CBC,
+       0x2CBD,
+       0x2CBE,
+       0x2CBF,
+       0x2CC0,
+       0x2CC1,
+       0x2CC2,
+       0x2CC3,
+       0x2CC4,
+       0x2CC5,
+       0x2CC6,
+       0x2CC7,
+       0x2CC8,
+       0x2CC9,
+       0x2CCA,
+       0x2CCB,
+       0x2CCC,
+       0x2CCD,
+       0x2CCE,
+       0x2CCF,
+       0x2CD0,
+       0x2CD1,
+       0x2CD2,
+       0x2CD3,
+       0x2CD4,
+       0x2CD5,
+       0x2CD6,
+       0x2CD7,
+       0x2CD8,
+       0x2CD9,
+       0x2CDA,
+       0x2CDB,
+       0x2CDC,
+       0x2CDD,
+       0x2CDE,
+       0x2CDF,
+       0x2CE0,
+       0x2CE1,
+       0x2CE2,
+       0x2CE3,
+       0x2CEB,
+       0x2CEC,
+       0x2CED,
+       0x2CEE,
+       0x2CF2,
+       0x2CF3,
+       0xA640,
+       0xA641,
+       0xA642,
+       0xA643,
+       0xA644,
+       0xA645,
+       0xA646,
+       0xA647,
+       0xA648,
+       0xA649,
+       0xA64A,
+       0xA64B,
+       0xA64C,
+       0xA64D,
+       0xA64E,
+       0xA64F,
+       0xA650,
+       0xA651,
+       0xA652,
+       0xA653,
+       0xA654,
+       0xA655,
+       0xA656,
+       0xA657,
+       0xA658,
+       0xA659,
+       0xA65A,
+       0xA65B,
+       0xA65C,
+       0xA65D,
+       0xA65E,
+       0xA65F,
+       0xA660,
+       0xA661,
+       0xA662,
+       0xA663,
+       0xA664,
+       0xA665,
+       0xA666,
+       0xA667,
+       0xA668,
+       0xA669,
+       0xA66A,
+       0xA66B,
+       0xA66C,
+       0xA66D,
+       0xA680,
+       0xA681,
+       0xA682,
+       0xA683,
+       0xA684,
+       0xA685,
+       0xA686,
+       0xA687,
+       0xA688,
+       0xA689,
+       0xA68A,
+       0xA68B,
+       0xA68C,
+       0xA68D,
+       0xA68E,
+       0xA68F,
+       0xA690,
+       0xA691,
+       0xA692,
+       0xA693,
+       0xA694,
+       0xA695,
+       0xA696,
+       0xA697,
+       0xA698,
+       0xA699,
+       0xA69A,
+       0xA69B,
+       0xA722,
+       0xA723,
+       0xA724,
+       0xA725,
+       0xA726,
+       0xA727,
+       0xA728,
+       0xA729,
+       0xA72A,
+       0xA72B,
+       0xA72C,
+       0xA72D,
+       0xA72E,
+       0xA72F,
+       0xA732,
+       0xA733,
+       0xA734,
+       0xA735,
+       0xA736,
+       0xA737,
+       0xA738,
+       0xA739,
+       0xA73A,
+       0xA73B,
+       0xA73C,
+       0xA73D,
+       0xA73E,
+       0xA73F,
+       0xA740,
+       0xA741,
+       0xA742,
+       0xA743,
+       0xA744,
+       0xA745,
+       0xA746,
+       0xA747,
+       0xA748,
+       0xA749,
+       0xA74A,
+       0xA74B,
+       0xA74C,
+       0xA74D,
+       0xA74E,
+       0xA74F,
+       0xA750,
+       0xA751,
+       0xA752,
+       0xA753,
+       0xA754,
+       0xA755,
+       0xA756,
+       0xA757,
+       0xA758,
+       0xA759,
+       0xA75A,
+       0xA75B,
+       0xA75C,
+       0xA75D,
+       0xA75E,
+       0xA75F,
+       0xA760,
+       0xA761,
+       0xA762,
+       0xA763,
+       0xA764,
+       0xA765,
+       0xA766,
+       0xA767,
+       0xA768,
+       0xA769,
+       0xA76A,
+       0xA76B,
+       0xA76C,
+       0xA76D,
+       0xA76E,
+       0xA76F,
+       0xA779,
+       0xA77A,
+       0xA77B,
+       0xA77C,
+       0xA77D,
+       0xA77F,
+       0xA780,
+       0xA781,
+       0xA782,
+       0xA783,
+       0xA784,
+       0xA785,
+       0xA786,
+       0xA787,
+       0xA78B,
+       0xA78C,
+       0xA78D,
+       0xA78E,
+       0xA790,
+       0xA791,
+       0xA792,
+       0xA793,
+       0xA796,
+       0xA797,
+       0xA798,
+       0xA799,
+       0xA79A,
+       0xA79B,
+       0xA79C,
+       0xA79D,
+       0xA79E,
+       0xA79F,
+       0xA7A0,
+       0xA7A1,
+       0xA7A2,
+       0xA7A3,
+       0xA7A4,
+       0xA7A5,
+       0xA7A6,
+       0xA7A7,
+       0xA7A8,
+       0xA7A9,
+       0xA7AA,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xFF21,
+       0xFF3B,
+       0x10400,
+       0x10428,
+       0x118A0,
+       0x118C0,
+       0x1D400,
+       0x1D41A,
+       0x1D434,
+       0x1D44E,
+       0x1D468,
+       0x1D482,
+       0x1D49C,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4B6,
+       0x1D4D0,
+       0x1D4EA,
+       0x1D504,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D538,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D56C,
+       0x1D586,
+       0x1D5A0,
+       0x1D5BA,
+       0x1D5D4,
+       0x1D5EE,
+       0x1D608,
+       0x1D622,
+       0x1D63C,
+       0x1D656,
+       0x1D670,
+       0x1D68A,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6E2,
+       0x1D6FB,
+       0x1D71C,
+       0x1D735,
+       0x1D756,
+       0x1D76F,
+       0x1D790,
+       0x1D7A9,
+       0x1D7CA,
+       0x1D7CB,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A
 };
 
 static const UV XPosixWord_invlist[] = { /* for ASCII/Latin1 */
@@ -8272,1267 +22746,1267 @@ static const UV XPosixWord_invlist[] = { /* for ASCII/Latin1 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       48,
-       58,
-       65,
-       91,
-       95,
-       96,
-       97,
-       123,
-       170,
-       171,
-       181,
-       182,
-       186,
-       187,
-       192,
-       215,
-       216,
-       247,
-       248,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       768,
-       885,
-       886,
-       888,
-       890,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1155,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1425,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1480,
-       1488,
-       1515,
-       1520,
-       1523,
-       1552,
-       1563,
-       1568,
-       1642,
-       1646,
-       1748,
-       1749,
-       1757,
-       1759,
-       1769,
-       1770,
-       1789,
-       1791,
-       1792,
-       1808,
-       1867,
-       1869,
-       1970,
-       1984,
-       2038,
-       2042,
-       2043,
-       2048,
-       2094,
-       2112,
-       2140,
-       2208,
-       2227,
-       2276,
-       2404,
-       2406,
-       2416,
-       2417,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2492,
-       2501,
-       2503,
-       2505,
-       2507,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2546,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2620,
-       2621,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2638,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2748,
-       2758,
-       2759,
-       2762,
-       2763,
-       2766,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2800,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2876,
-       2885,
-       2887,
-       2889,
-       2891,
-       2894,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2928,
-       2929,
-       2930,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3022,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3056,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3150,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3260,
-       3269,
-       3270,
-       3273,
-       3274,
-       3278,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3440,
-       3450,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3530,
-       3531,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3572,
-       3585,
-       3643,
-       3648,
-       3663,
-       3664,
-       3674,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3784,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3841,
-       3864,
-       3866,
-       3872,
-       3882,
-       3893,
-       3894,
-       3895,
-       3896,
-       3897,
-       3898,
-       3902,
-       3912,
-       3913,
-       3949,
-       3953,
-       3973,
-       3974,
-       3992,
-       3993,
-       4029,
-       4038,
-       4039,
-       4096,
-       4170,
-       4176,
-       4254,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4957,
-       4960,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5909,
-       5920,
-       5941,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6100,
-       6103,
-       6104,
-       6108,
-       6110,
-       6112,
-       6122,
-       6155,
-       6158,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6460,
-       6470,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6618,
-       6656,
-       6684,
-       6688,
-       6751,
-       6752,
-       6781,
-       6783,
-       6794,
-       6800,
-       6810,
-       6823,
-       6824,
-       6832,
-       6847,
-       6912,
-       6988,
-       6992,
-       7002,
-       7019,
-       7028,
-       7040,
-       7156,
-       7168,
-       7224,
-       7232,
-       7242,
-       7245,
-       7294,
-       7376,
-       7379,
-       7380,
-       7415,
-       7416,
-       7418,
-       7424,
-       7670,
-       7676,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8204,
-       8206,
-       8255,
-       8257,
-       8276,
-       8277,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8400,
-       8433,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11647,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11776,
-       11823,
-       11824,
-       12293,
-       12296,
-       12321,
-       12336,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12441,
-       12443,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42540,
-       42560,
-       42611,
-       42612,
-       42622,
-       42623,
-       42654,
-       42655,
-       42738,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43048,
-       43072,
-       43124,
-       43136,
-       43205,
-       43216,
-       43226,
-       43232,
-       43256,
-       43259,
-       43260,
-       43264,
-       43310,
-       43312,
-       43348,
-       43360,
-       43389,
-       43392,
-       43457,
-       43471,
-       43482,
-       43488,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43616,
-       43639,
-       43642,
-       43715,
-       43739,
-       43742,
-       43744,
-       43760,
-       43762,
-       43767,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44011,
-       44012,
-       44014,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65020,
-       65024,
-       65040,
-       65056,
-       65070,
-       65075,
-       65077,
-       65101,
-       65104,
-       65136,
-       65141,
-       65142,
-       65277,
-       65296,
-       65306,
-       65313,
-       65339,
-       65343,
-       65344,
-       65345,
-       65371,
-       65382,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66045,
-       66046,
-       66176,
-       66205,
-       66208,
-       66257,
-       66272,
-       66273,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68152,
-       68155,
-       68159,
-       68160,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68327,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69632,
-       69703,
-       69734,
-       69744,
-       69759,
-       69819,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69941,
-       69942,
-       69952,
-       69968,
-       70004,
-       70006,
-       70007,
-       70016,
-       70085,
-       70096,
-       70107,
-       70144,
-       70162,
-       70163,
-       70200,
-       70320,
-       70379,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70460,
-       70469,
-       70471,
-       70473,
-       70475,
-       70478,
-       70487,
-       70488,
-       70493,
-       70500,
-       70502,
-       70509,
-       70512,
-       70517,
-       70784,
-       70854,
-       70855,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71105,
-       71168,
-       71233,
-       71236,
-       71237,
-       71248,
-       71258,
-       71296,
-       71352,
-       71360,
-       71370,
-       71840,
-       71914,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92880,
-       92910,
-       92912,
-       92917,
-       92928,
-       92983,
-       92992,
-       92996,
-       93008,
-       93018,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94095,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113821,
-       113823,
-       119141,
-       119146,
-       119149,
-       119155,
-       119163,
-       119171,
-       119173,
-       119180,
-       119210,
-       119214,
-       119362,
-       119365,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       125136,
-       125143,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102,
-       917760,
-       918000
+       0x0,
+       0x30,
+       0x3A,
+       0x41,
+       0x5B,
+       0x5F,
+       0x60,
+       0x61,
+       0x7B,
+       0xAA,
+       0xAB,
+       0xB5,
+       0xB6,
+       0xBA,
+       0xBB,
+       0xC0,
+       0xD7,
+       0xD8,
+       0xF7,
+       0xF8,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x300,
+       0x375,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x483,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x610,
+       0x61B,
+       0x620,
+       0x66A,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x6DD,
+       0x6DF,
+       0x6E9,
+       0x6EA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x74B,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x82E,
+       0x840,
+       0x85C,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE3B,
+       0xE40,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF18,
+       0xF1A,
+       0xF20,
+       0xF2A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF85,
+       0xF86,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x1000,
+       0x104A,
+       0x1050,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1715,
+       0x1720,
+       0x1735,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17D4,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x180B,
+       0x180E,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1946,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A1C,
+       0x1A20,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA7,
+       0x1AA8,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1BF4,
+       0x1C00,
+       0x1C38,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C7E,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DF6,
+       0x1DFC,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x200C,
+       0x200E,
+       0x203F,
+       0x2041,
+       0x2054,
+       0x2055,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x20D0,
+       0x20F1,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D7F,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x3030,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x309B,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA62C,
+       0xA640,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6F2,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA8C5,
+       0xA8D0,
+       0xA8DA,
+       0xA8E0,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA92E,
+       0xA930,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA9C1,
+       0xA9CF,
+       0xA9DA,
+       0xA9E0,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEB,
+       0xABEC,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE00,
+       0xFE10,
+       0xFE20,
+       0xFE2E,
+       0xFE33,
+       0xFE35,
+       0xFE4D,
+       0xFE50,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFF10,
+       0xFF1A,
+       0xFF21,
+       0xFF3B,
+       0xFF3F,
+       0xFF40,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x101FD,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102E1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE7,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11047,
+       0x11066,
+       0x11070,
+       0x1107F,
+       0x110BB,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11135,
+       0x11136,
+       0x11140,
+       0x11150,
+       0x11174,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x111C5,
+       0x111D0,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x11238,
+       0x112B0,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115C1,
+       0x11600,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF5,
+       0x16B00,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F8F,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9D,
+       0x1BC9F,
+       0x1D165,
+       0x1D16A,
+       0x1D16D,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8D0,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0100,
+       0xE01F0
 };
 
 static const UV XPosixXDigit_invlist[] = { /* for ASCII/Latin1 */
@@ -9540,3175 +24014,15131 @@ static const UV XPosixXDigit_invlist[] = { /* for ASCII/Latin1 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       48,
-       58,
-       65,
-       71,
-       97,
-       103,
-       65296,
-       65306,
-       65313,
-       65319,
-       65345,
-       65351
+       0x0,
+       0x30,
+       0x3A,
+       0x41,
+       0x47,
+       0x61,
+       0x67,
+       0xFF10,
+       0xFF1A,
+       0xFF21,
+       0xFF27,
+       0xFF41,
+       0xFF47
 };
 
-static const UV _Perl_Any_Folds_invlist[] = { /* for ASCII/Latin1 */
-       235,    /* Number of elements */
+#endif /* defined(PERL_IN_PERL_C) */
+
+#endif /* ASCII/Latin1 */
+
+#if 'A' == 193 /* EBCDIC 1047 */ \
+     && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
+     && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 121
+
+#if defined(PERL_IN_PERL_C)
+
+static const UV ASCII_invlist[] = { /* for EBCDIC 1047 */
+       54,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       0,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x4,
+       0x5,
+       0x6,
+       0x7,
+       0x8,
+       0xB,
+       0x14,
+       0x15,
+       0x17,
+       0x18,
+       0x1A,
+       0x1C,
+       0x20,
+       0x26,
+       0x28,
+       0x2D,
+       0x30,
+       0x32,
+       0x33,
+       0x37,
+       0x38,
+       0x3C,
+       0x3E,
+       0x3F,
+       0x41,
+       0x4B,
+       0x51,
+       0x5A,
+       0x62,
+       0x6B,
+       0x70,
+       0x79,
+       0x80,
+       0x81,
+       0x8A,
+       0x91,
+       0x9A,
+       0xA1,
+       0xAA,
+       0xAD,
+       0xAE,
+       0xBD,
+       0xBE,
+       0xC0,
+       0xCA,
+       0xD0,
+       0xDA,
+       0xE0,
+       0xE1,
+       0xE2,
+       0xEA,
+       0xF0,
+       0xFA
+};
+
+static const UV Cased_invlist[] = { /* for EBCDIC 1047 */
+       281,    /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       65,
-       91,
-       97,
-       123,
-       181,
-       182,
-       192,
-       215,
-       216,
-       247,
-       248,
-       305,
-       306,
-       312,
-       313,
-       397,
-       398,
-       411,
-       412,
-       426,
-       428,
-       442,
-       444,
-       446,
-       447,
-       448,
-       452,
-       545,
-       546,
-       564,
-       570,
-       597,
-       598,
-       600,
-       601,
-       602,
-       603,
-       605,
-       608,
-       610,
-       611,
-       612,
-       613,
-       615,
-       616,
-       618,
-       619,
-       621,
-       623,
-       624,
-       625,
-       627,
-       629,
-       630,
-       637,
-       638,
-       640,
-       641,
-       643,
-       644,
-       647,
-       653,
-       658,
-       659,
-       670,
-       671,
-       700,
-       701,
-       702,
-       703,
-       768,
-       770,
-       775,
-       777,
-       778,
-       779,
-       780,
-       781,
-       787,
-       788,
-       817,
-       818,
-       834,
-       835,
-       837,
-       838,
-       880,
-       884,
-       886,
-       888,
-       891,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       978,
-       981,
-       1014,
-       1015,
-       1020,
-       1021,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1377,
-       1416,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       7545,
-       7546,
-       7549,
-       7550,
-       7680,
-       7836,
-       7838,
-       7839,
-       7840,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8486,
-       8487,
-       8490,
-       8492,
-       8498,
-       8499,
-       8526,
-       8527,
-       8544,
-       8576,
-       8579,
-       8581,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11377,
-       11378,
-       11380,
-       11381,
-       11383,
-       11390,
-       11492,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       42560,
-       42606,
-       42624,
-       42652,
-       42786,
-       42800,
-       42802,
-       42864,
-       42873,
-       42888,
-       42891,
-       42894,
-       42896,
-       42900,
-       42902,
-       42926,
-       42928,
-       42930,
-       64256,
-       64263,
-       64275,
-       64280,
-       65313,
-       65339,
-       65345,
-       65371,
-       66560,
-       66640,
-       71840,
-       71904
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAD,
+       0xAE,
+       0xAF,
+       0xBA,
+       0xBB,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFB,
+       0xFF,
+       0x100,
+       0x1BB,
+       0x1BC,
+       0x1C0,
+       0x1C4,
+       0x294,
+       0x295,
+       0x2B9,
+       0x2C0,
+       0x2C2,
+       0x2E0,
+       0x2E5,
+       0x345,
+       0x346,
+       0x370,
+       0x374,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x561,
+       0x588,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x1D00,
+       0x1DC0,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x2135,
+       0x2139,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2180,
+       0x2183,
+       0x2185,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0xA640,
+       0xA66E,
+       0xA680,
+       0xA69E,
+       0xA722,
+       0xA788,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F8,
+       0xA7FB,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0x10400,
+       0x10450,
+       0x118A0,
+       0x118E0,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A
 };
 
-#endif /* #ifndef PERL_IN_XSUB_RE */
+static const UV Grapheme_Cluster_Break_invlist[] = { /* for EBCDIC 1047 */
+       1484,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       0,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0xD,
+       0xE,
+       0x15,
+       0x16,
+       0x40,
+       0xCA,
+       0xCB,
+       0xFF,
+       0x100,
+       0x300,
+       0x370,
+       0x483,
+       0x48A,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x600,
+       0x606,
+       0x610,
+       0x61B,
+       0x61C,
+       0x61D,
+       0x64B,
+       0x660,
+       0x670,
+       0x671,
+       0x6D6,
+       0x6DD,
+       0x6DE,
+       0x6DF,
+       0x6E5,
+       0x6E7,
+       0x6E9,
+       0x6EA,
+       0x6EE,
+       0x70F,
+       0x710,
+       0x711,
+       0x712,
+       0x730,
+       0x74B,
+       0x7A6,
+       0x7B1,
+       0x7EB,
+       0x7F4,
+       0x816,
+       0x81A,
+       0x81B,
+       0x824,
+       0x825,
+       0x828,
+       0x829,
+       0x82E,
+       0x859,
+       0x85C,
+       0x8E4,
+       0x903,
+       0x904,
+       0x93A,
+       0x93B,
+       0x93C,
+       0x93D,
+       0x93E,
+       0x941,
+       0x949,
+       0x94D,
+       0x94E,
+       0x950,
+       0x951,
+       0x958,
+       0x962,
+       0x964,
+       0x981,
+       0x982,
+       0x984,
+       0x9BC,
+       0x9BD,
+       0x9BE,
+       0x9BF,
+       0x9C1,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CD,
+       0x9CE,
+       0x9D7,
+       0x9D8,
+       0x9E2,
+       0x9E4,
+       0xA01,
+       0xA03,
+       0xA04,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA41,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA70,
+       0xA72,
+       0xA75,
+       0xA76,
+       0xA81,
+       0xA83,
+       0xA84,
+       0xABC,
+       0xABD,
+       0xABE,
+       0xAC1,
+       0xAC6,
+       0xAC7,
+       0xAC9,
+       0xACA,
+       0xACB,
+       0xACD,
+       0xACE,
+       0xAE2,
+       0xAE4,
+       0xB01,
+       0xB02,
+       0xB04,
+       0xB3C,
+       0xB3D,
+       0xB3E,
+       0xB40,
+       0xB41,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4D,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB62,
+       0xB64,
+       0xB82,
+       0xB83,
+       0xBBE,
+       0xBBF,
+       0xBC0,
+       0xBC1,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCD,
+       0xBCE,
+       0xBD7,
+       0xBD8,
+       0xC00,
+       0xC01,
+       0xC04,
+       0xC3E,
+       0xC41,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC62,
+       0xC64,
+       0xC81,
+       0xC82,
+       0xC84,
+       0xCBC,
+       0xCBD,
+       0xCBE,
+       0xCBF,
+       0xCC0,
+       0xCC2,
+       0xCC3,
+       0xCC5,
+       0xCC6,
+       0xCC7,
+       0xCC9,
+       0xCCA,
+       0xCCC,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCE2,
+       0xCE4,
+       0xD01,
+       0xD02,
+       0xD04,
+       0xD3E,
+       0xD3F,
+       0xD41,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4D,
+       0xD4E,
+       0xD57,
+       0xD58,
+       0xD62,
+       0xD64,
+       0xD82,
+       0xD84,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD0,
+       0xDD2,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDDF,
+       0xDE0,
+       0xDF2,
+       0xDF4,
+       0xE31,
+       0xE32,
+       0xE33,
+       0xE34,
+       0xE3B,
+       0xE47,
+       0xE4F,
+       0xEB1,
+       0xEB2,
+       0xEB3,
+       0xEB4,
+       0xEBA,
+       0xEBB,
+       0xEBD,
+       0xEC8,
+       0xECE,
+       0xF18,
+       0xF1A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF40,
+       0xF71,
+       0xF7F,
+       0xF80,
+       0xF85,
+       0xF86,
+       0xF88,
+       0xF8D,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x102D,
+       0x1031,
+       0x1032,
+       0x1038,
+       0x1039,
+       0x103B,
+       0x103D,
+       0x103F,
+       0x1056,
+       0x1058,
+       0x105A,
+       0x105E,
+       0x1061,
+       0x1071,
+       0x1075,
+       0x1082,
+       0x1083,
+       0x1084,
+       0x1085,
+       0x1087,
+       0x108D,
+       0x108E,
+       0x109D,
+       0x109E,
+       0x1100,
+       0x1160,
+       0x11A8,
+       0x1200,
+       0x135D,
+       0x1360,
+       0x1712,
+       0x1715,
+       0x1732,
+       0x1735,
+       0x1752,
+       0x1754,
+       0x1772,
+       0x1774,
+       0x17B4,
+       0x17B6,
+       0x17B7,
+       0x17BE,
+       0x17C6,
+       0x17C7,
+       0x17C9,
+       0x17D4,
+       0x17DD,
+       0x17DE,
+       0x180B,
+       0x180E,
+       0x180F,
+       0x18A9,
+       0x18AA,
+       0x1920,
+       0x1923,
+       0x1927,
+       0x1929,
+       0x192C,
+       0x1930,
+       0x1932,
+       0x1933,
+       0x1939,
+       0x193C,
+       0x19B5,
+       0x19B8,
+       0x19BA,
+       0x19BB,
+       0x1A17,
+       0x1A19,
+       0x1A1B,
+       0x1A1C,
+       0x1A55,
+       0x1A56,
+       0x1A57,
+       0x1A58,
+       0x1A5F,
+       0x1A60,
+       0x1A61,
+       0x1A62,
+       0x1A63,
+       0x1A65,
+       0x1A6D,
+       0x1A73,
+       0x1A7D,
+       0x1A7F,
+       0x1A80,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B04,
+       0x1B05,
+       0x1B34,
+       0x1B35,
+       0x1B36,
+       0x1B3B,
+       0x1B3C,
+       0x1B3D,
+       0x1B42,
+       0x1B43,
+       0x1B45,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1B82,
+       0x1B83,
+       0x1BA1,
+       0x1BA2,
+       0x1BA6,
+       0x1BA8,
+       0x1BAA,
+       0x1BAB,
+       0x1BAE,
+       0x1BE6,
+       0x1BE7,
+       0x1BE8,
+       0x1BEA,
+       0x1BED,
+       0x1BEE,
+       0x1BEF,
+       0x1BF2,
+       0x1BF4,
+       0x1C24,
+       0x1C2C,
+       0x1C34,
+       0x1C36,
+       0x1C38,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CE1,
+       0x1CE2,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF2,
+       0x1CF4,
+       0x1CF5,
+       0x1CF8,
+       0x1CFA,
+       0x1DC0,
+       0x1DF6,
+       0x1DFC,
+       0x1E00,
+       0x200B,
+       0x200C,
+       0x200E,
+       0x2010,
+       0x2028,
+       0x202F,
+       0x2060,
+       0x2070,
+       0x20D0,
+       0x20F1,
+       0x2CEF,
+       0x2CF2,
+       0x2D7F,
+       0x2D80,
+       0x2DE0,
+       0x2E00,
+       0x302A,
+       0x3030,
+       0x3099,
+       0x309B,
+       0xA66F,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA69F,
+       0xA6A0,
+       0xA6F0,
+       0xA6F2,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA823,
+       0xA825,
+       0xA827,
+       0xA828,
+       0xA880,
+       0xA882,
+       0xA8B4,
+       0xA8C4,
+       0xA8C5,
+       0xA8E0,
+       0xA8F2,
+       0xA926,
+       0xA92E,
+       0xA947,
+       0xA952,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA983,
+       0xA984,
+       0xA9B3,
+       0xA9B4,
+       0xA9B6,
+       0xA9BA,
+       0xA9BC,
+       0xA9BD,
+       0xA9C1,
+       0xA9E5,
+       0xA9E6,
+       0xAA29,
+       0xAA2F,
+       0xAA31,
+       0xAA33,
+       0xAA35,
+       0xAA37,
+       0xAA43,
+       0xAA44,
+       0xAA4C,
+       0xAA4D,
+       0xAA4E,
+       0xAA7C,
+       0xAA7D,
+       0xAAB0,
+       0xAAB1,
+       0xAAB2,
+       0xAAB5,
+       0xAAB7,
+       0xAAB9,
+       0xAABE,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAEB,
+       0xAAEC,
+       0xAAEE,
+       0xAAF0,
+       0xAAF5,
+       0xAAF6,
+       0xAAF7,
+       0xABE3,
+       0xABE5,
+       0xABE6,
+       0xABE8,
+       0xABE9,
+       0xABEB,
+       0xABEC,
+       0xABED,
+       0xABEE,
+       0xAC00,
+       0xAC01,
+       0xAC1C,
+       0xAC1D,
+       0xAC38,
+       0xAC39,
+       0xAC54,
+       0xAC55,
+       0xAC70,
+       0xAC71,
+       0xAC8C,
+       0xAC8D,
+       0xACA8,
+       0xACA9,
+       0xACC4,
+       0xACC5,
+       0xACE0,
+       0xACE1,
+       0xACFC,
+       0xACFD,
+       0xAD18,
+       0xAD19,
+       0xAD34,
+       0xAD35,
+       0xAD50,
+       0xAD51,
+       0xAD6C,
+       0xAD6D,
+       0xAD88,
+       0xAD89,
+       0xADA4,
+       0xADA5,
+       0xADC0,
+       0xADC1,
+       0xADDC,
+       0xADDD,
+       0xADF8,
+       0xADF9,
+       0xAE14,
+       0xAE15,
+       0xAE30,
+       0xAE31,
+       0xAE4C,
+       0xAE4D,
+       0xAE68,
+       0xAE69,
+       0xAE84,
+       0xAE85,
+       0xAEA0,
+       0xAEA1,
+       0xAEBC,
+       0xAEBD,
+       0xAED8,
+       0xAED9,
+       0xAEF4,
+       0xAEF5,
+       0xAF10,
+       0xAF11,
+       0xAF2C,
+       0xAF2D,
+       0xAF48,
+       0xAF49,
+       0xAF64,
+       0xAF65,
+       0xAF80,
+       0xAF81,
+       0xAF9C,
+       0xAF9D,
+       0xAFB8,
+       0xAFB9,
+       0xAFD4,
+       0xAFD5,
+       0xAFF0,
+       0xAFF1,
+       0xB00C,
+       0xB00D,
+       0xB028,
+       0xB029,
+       0xB044,
+       0xB045,
+       0xB060,
+       0xB061,
+       0xB07C,
+       0xB07D,
+       0xB098,
+       0xB099,
+       0xB0B4,
+       0xB0B5,
+       0xB0D0,
+       0xB0D1,
+       0xB0EC,
+       0xB0ED,
+       0xB108,
+       0xB109,
+       0xB124,
+       0xB125,
+       0xB140,
+       0xB141,
+       0xB15C,
+       0xB15D,
+       0xB178,
+       0xB179,
+       0xB194,
+       0xB195,
+       0xB1B0,
+       0xB1B1,
+       0xB1CC,
+       0xB1CD,
+       0xB1E8,
+       0xB1E9,
+       0xB204,
+       0xB205,
+       0xB220,
+       0xB221,
+       0xB23C,
+       0xB23D,
+       0xB258,
+       0xB259,
+       0xB274,
+       0xB275,
+       0xB290,
+       0xB291,
+       0xB2AC,
+       0xB2AD,
+       0xB2C8,
+       0xB2C9,
+       0xB2E4,
+       0xB2E5,
+       0xB300,
+       0xB301,
+       0xB31C,
+       0xB31D,
+       0xB338,
+       0xB339,
+       0xB354,
+       0xB355,
+       0xB370,
+       0xB371,
+       0xB38C,
+       0xB38D,
+       0xB3A8,
+       0xB3A9,
+       0xB3C4,
+       0xB3C5,
+       0xB3E0,
+       0xB3E1,
+       0xB3FC,
+       0xB3FD,
+       0xB418,
+       0xB419,
+       0xB434,
+       0xB435,
+       0xB450,
+       0xB451,
+       0xB46C,
+       0xB46D,
+       0xB488,
+       0xB489,
+       0xB4A4,
+       0xB4A5,
+       0xB4C0,
+       0xB4C1,
+       0xB4DC,
+       0xB4DD,
+       0xB4F8,
+       0xB4F9,
+       0xB514,
+       0xB515,
+       0xB530,
+       0xB531,
+       0xB54C,
+       0xB54D,
+       0xB568,
+       0xB569,
+       0xB584,
+       0xB585,
+       0xB5A0,
+       0xB5A1,
+       0xB5BC,
+       0xB5BD,
+       0xB5D8,
+       0xB5D9,
+       0xB5F4,
+       0xB5F5,
+       0xB610,
+       0xB611,
+       0xB62C,
+       0xB62D,
+       0xB648,
+       0xB649,
+       0xB664,
+       0xB665,
+       0xB680,
+       0xB681,
+       0xB69C,
+       0xB69D,
+       0xB6B8,
+       0xB6B9,
+       0xB6D4,
+       0xB6D5,
+       0xB6F0,
+       0xB6F1,
+       0xB70C,
+       0xB70D,
+       0xB728,
+       0xB729,
+       0xB744,
+       0xB745,
+       0xB760,
+       0xB761,
+       0xB77C,
+       0xB77D,
+       0xB798,
+       0xB799,
+       0xB7B4,
+       0xB7B5,
+       0xB7D0,
+       0xB7D1,
+       0xB7EC,
+       0xB7ED,
+       0xB808,
+       0xB809,
+       0xB824,
+       0xB825,
+       0xB840,
+       0xB841,
+       0xB85C,
+       0xB85D,
+       0xB878,
+       0xB879,
+       0xB894,
+       0xB895,
+       0xB8B0,
+       0xB8B1,
+       0xB8CC,
+       0xB8CD,
+       0xB8E8,
+       0xB8E9,
+       0xB904,
+       0xB905,
+       0xB920,
+       0xB921,
+       0xB93C,
+       0xB93D,
+       0xB958,
+       0xB959,
+       0xB974,
+       0xB975,
+       0xB990,
+       0xB991,
+       0xB9AC,
+       0xB9AD,
+       0xB9C8,
+       0xB9C9,
+       0xB9E4,
+       0xB9E5,
+       0xBA00,
+       0xBA01,
+       0xBA1C,
+       0xBA1D,
+       0xBA38,
+       0xBA39,
+       0xBA54,
+       0xBA55,
+       0xBA70,
+       0xBA71,
+       0xBA8C,
+       0xBA8D,
+       0xBAA8,
+       0xBAA9,
+       0xBAC4,
+       0xBAC5,
+       0xBAE0,
+       0xBAE1,
+       0xBAFC,
+       0xBAFD,
+       0xBB18,
+       0xBB19,
+       0xBB34,
+       0xBB35,
+       0xBB50,
+       0xBB51,
+       0xBB6C,
+       0xBB6D,
+       0xBB88,
+       0xBB89,
+       0xBBA4,
+       0xBBA5,
+       0xBBC0,
+       0xBBC1,
+       0xBBDC,
+       0xBBDD,
+       0xBBF8,
+       0xBBF9,
+       0xBC14,
+       0xBC15,
+       0xBC30,
+       0xBC31,
+       0xBC4C,
+       0xBC4D,
+       0xBC68,
+       0xBC69,
+       0xBC84,
+       0xBC85,
+       0xBCA0,
+       0xBCA1,
+       0xBCBC,
+       0xBCBD,
+       0xBCD8,
+       0xBCD9,
+       0xBCF4,
+       0xBCF5,
+       0xBD10,
+       0xBD11,
+       0xBD2C,
+       0xBD2D,
+       0xBD48,
+       0xBD49,
+       0xBD64,
+       0xBD65,
+       0xBD80,
+       0xBD81,
+       0xBD9C,
+       0xBD9D,
+       0xBDB8,
+       0xBDB9,
+       0xBDD4,
+       0xBDD5,
+       0xBDF0,
+       0xBDF1,
+       0xBE0C,
+       0xBE0D,
+       0xBE28,
+       0xBE29,
+       0xBE44,
+       0xBE45,
+       0xBE60,
+       0xBE61,
+       0xBE7C,
+       0xBE7D,
+       0xBE98,
+       0xBE99,
+       0xBEB4,
+       0xBEB5,
+       0xBED0,
+       0xBED1,
+       0xBEEC,
+       0xBEED,
+       0xBF08,
+       0xBF09,
+       0xBF24,
+       0xBF25,
+       0xBF40,
+       0xBF41,
+       0xBF5C,
+       0xBF5D,
+       0xBF78,
+       0xBF79,
+       0xBF94,
+       0xBF95,
+       0xBFB0,
+       0xBFB1,
+       0xBFCC,
+       0xBFCD,
+       0xBFE8,
+       0xBFE9,
+       0xC004,
+       0xC005,
+       0xC020,
+       0xC021,
+       0xC03C,
+       0xC03D,
+       0xC058,
+       0xC059,
+       0xC074,
+       0xC075,
+       0xC090,
+       0xC091,
+       0xC0AC,
+       0xC0AD,
+       0xC0C8,
+       0xC0C9,
+       0xC0E4,
+       0xC0E5,
+       0xC100,
+       0xC101,
+       0xC11C,
+       0xC11D,
+       0xC138,
+       0xC139,
+       0xC154,
+       0xC155,
+       0xC170,
+       0xC171,
+       0xC18C,
+       0xC18D,
+       0xC1A8,
+       0xC1A9,
+       0xC1C4,
+       0xC1C5,
+       0xC1E0,
+       0xC1E1,
+       0xC1FC,
+       0xC1FD,
+       0xC218,
+       0xC219,
+       0xC234,
+       0xC235,
+       0xC250,
+       0xC251,
+       0xC26C,
+       0xC26D,
+       0xC288,
+       0xC289,
+       0xC2A4,
+       0xC2A5,
+       0xC2C0,
+       0xC2C1,
+       0xC2DC,
+       0xC2DD,
+       0xC2F8,
+       0xC2F9,
+       0xC314,
+       0xC315,
+       0xC330,
+       0xC331,
+       0xC34C,
+       0xC34D,
+       0xC368,
+       0xC369,
+       0xC384,
+       0xC385,
+       0xC3A0,
+       0xC3A1,
+       0xC3BC,
+       0xC3BD,
+       0xC3D8,
+       0xC3D9,
+       0xC3F4,
+       0xC3F5,
+       0xC410,
+       0xC411,
+       0xC42C,
+       0xC42D,
+       0xC448,
+       0xC449,
+       0xC464,
+       0xC465,
+       0xC480,
+       0xC481,
+       0xC49C,
+       0xC49D,
+       0xC4B8,
+       0xC4B9,
+       0xC4D4,
+       0xC4D5,
+       0xC4F0,
+       0xC4F1,
+       0xC50C,
+       0xC50D,
+       0xC528,
+       0xC529,
+       0xC544,
+       0xC545,
+       0xC560,
+       0xC561,
+       0xC57C,
+       0xC57D,
+       0xC598,
+       0xC599,
+       0xC5B4,
+       0xC5B5,
+       0xC5D0,
+       0xC5D1,
+       0xC5EC,
+       0xC5ED,
+       0xC608,
+       0xC609,
+       0xC624,
+       0xC625,
+       0xC640,
+       0xC641,
+       0xC65C,
+       0xC65D,
+       0xC678,
+       0xC679,
+       0xC694,
+       0xC695,
+       0xC6B0,
+       0xC6B1,
+       0xC6CC,
+       0xC6CD,
+       0xC6E8,
+       0xC6E9,
+       0xC704,
+       0xC705,
+       0xC720,
+       0xC721,
+       0xC73C,
+       0xC73D,
+       0xC758,
+       0xC759,
+       0xC774,
+       0xC775,
+       0xC790,
+       0xC791,
+       0xC7AC,
+       0xC7AD,
+       0xC7C8,
+       0xC7C9,
+       0xC7E4,
+       0xC7E5,
+       0xC800,
+       0xC801,
+       0xC81C,
+       0xC81D,
+       0xC838,
+       0xC839,
+       0xC854,
+       0xC855,
+       0xC870,
+       0xC871,
+       0xC88C,
+       0xC88D,
+       0xC8A8,
+       0xC8A9,
+       0xC8C4,
+       0xC8C5,
+       0xC8E0,
+       0xC8E1,
+       0xC8FC,
+       0xC8FD,
+       0xC918,
+       0xC919,
+       0xC934,
+       0xC935,
+       0xC950,
+       0xC951,
+       0xC96C,
+       0xC96D,
+       0xC988,
+       0xC989,
+       0xC9A4,
+       0xC9A5,
+       0xC9C0,
+       0xC9C1,
+       0xC9DC,
+       0xC9DD,
+       0xC9F8,
+       0xC9F9,
+       0xCA14,
+       0xCA15,
+       0xCA30,
+       0xCA31,
+       0xCA4C,
+       0xCA4D,
+       0xCA68,
+       0xCA69,
+       0xCA84,
+       0xCA85,
+       0xCAA0,
+       0xCAA1,
+       0xCABC,
+       0xCABD,
+       0xCAD8,
+       0xCAD9,
+       0xCAF4,
+       0xCAF5,
+       0xCB10,
+       0xCB11,
+       0xCB2C,
+       0xCB2D,
+       0xCB48,
+       0xCB49,
+       0xCB64,
+       0xCB65,
+       0xCB80,
+       0xCB81,
+       0xCB9C,
+       0xCB9D,
+       0xCBB8,
+       0xCBB9,
+       0xCBD4,
+       0xCBD5,
+       0xCBF0,
+       0xCBF1,
+       0xCC0C,
+       0xCC0D,
+       0xCC28,
+       0xCC29,
+       0xCC44,
+       0xCC45,
+       0xCC60,
+       0xCC61,
+       0xCC7C,
+       0xCC7D,
+       0xCC98,
+       0xCC99,
+       0xCCB4,
+       0xCCB5,
+       0xCCD0,
+       0xCCD1,
+       0xCCEC,
+       0xCCED,
+       0xCD08,
+       0xCD09,
+       0xCD24,
+       0xCD25,
+       0xCD40,
+       0xCD41,
+       0xCD5C,
+       0xCD5D,
+       0xCD78,
+       0xCD79,
+       0xCD94,
+       0xCD95,
+       0xCDB0,
+       0xCDB1,
+       0xCDCC,
+       0xCDCD,
+       0xCDE8,
+       0xCDE9,
+       0xCE04,
+       0xCE05,
+       0xCE20,
+       0xCE21,
+       0xCE3C,
+       0xCE3D,
+       0xCE58,
+       0xCE59,
+       0xCE74,
+       0xCE75,
+       0xCE90,
+       0xCE91,
+       0xCEAC,
+       0xCEAD,
+       0xCEC8,
+       0xCEC9,
+       0xCEE4,
+       0xCEE5,
+       0xCF00,
+       0xCF01,
+       0xCF1C,
+       0xCF1D,
+       0xCF38,
+       0xCF39,
+       0xCF54,
+       0xCF55,
+       0xCF70,
+       0xCF71,
+       0xCF8C,
+       0xCF8D,
+       0xCFA8,
+       0xCFA9,
+       0xCFC4,
+       0xCFC5,
+       0xCFE0,
+       0xCFE1,
+       0xCFFC,
+       0xCFFD,
+       0xD018,
+       0xD019,
+       0xD034,
+       0xD035,
+       0xD050,
+       0xD051,
+       0xD06C,
+       0xD06D,
+       0xD088,
+       0xD089,
+       0xD0A4,
+       0xD0A5,
+       0xD0C0,
+       0xD0C1,
+       0xD0DC,
+       0xD0DD,
+       0xD0F8,
+       0xD0F9,
+       0xD114,
+       0xD115,
+       0xD130,
+       0xD131,
+       0xD14C,
+       0xD14D,
+       0xD168,
+       0xD169,
+       0xD184,
+       0xD185,
+       0xD1A0,
+       0xD1A1,
+       0xD1BC,
+       0xD1BD,
+       0xD1D8,
+       0xD1D9,
+       0xD1F4,
+       0xD1F5,
+       0xD210,
+       0xD211,
+       0xD22C,
+       0xD22D,
+       0xD248,
+       0xD249,
+       0xD264,
+       0xD265,
+       0xD280,
+       0xD281,
+       0xD29C,
+       0xD29D,
+       0xD2B8,
+       0xD2B9,
+       0xD2D4,
+       0xD2D5,
+       0xD2F0,
+       0xD2F1,
+       0xD30C,
+       0xD30D,
+       0xD328,
+       0xD329,
+       0xD344,
+       0xD345,
+       0xD360,
+       0xD361,
+       0xD37C,
+       0xD37D,
+       0xD398,
+       0xD399,
+       0xD3B4,
+       0xD3B5,
+       0xD3D0,
+       0xD3D1,
+       0xD3EC,
+       0xD3ED,
+       0xD408,
+       0xD409,
+       0xD424,
+       0xD425,
+       0xD440,
+       0xD441,
+       0xD45C,
+       0xD45D,
+       0xD478,
+       0xD479,
+       0xD494,
+       0xD495,
+       0xD4B0,
+       0xD4B1,
+       0xD4CC,
+       0xD4CD,
+       0xD4E8,
+       0xD4E9,
+       0xD504,
+       0xD505,
+       0xD520,
+       0xD521,
+       0xD53C,
+       0xD53D,
+       0xD558,
+       0xD559,
+       0xD574,
+       0xD575,
+       0xD590,
+       0xD591,
+       0xD5AC,
+       0xD5AD,
+       0xD5C8,
+       0xD5C9,
+       0xD5E4,
+       0xD5E5,
+       0xD600,
+       0xD601,
+       0xD61C,
+       0xD61D,
+       0xD638,
+       0xD639,
+       0xD654,
+       0xD655,
+       0xD670,
+       0xD671,
+       0xD68C,
+       0xD68D,
+       0xD6A8,
+       0xD6A9,
+       0xD6C4,
+       0xD6C5,
+       0xD6E0,
+       0xD6E1,
+       0xD6FC,
+       0xD6FD,
+       0xD718,
+       0xD719,
+       0xD734,
+       0xD735,
+       0xD750,
+       0xD751,
+       0xD76C,
+       0xD76D,
+       0xD788,
+       0xD789,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xD800,
+       0xE000,
+       0xFB1E,
+       0xFB1F,
+       0xFE00,
+       0xFE10,
+       0xFE20,
+       0xFE2E,
+       0xFEFF,
+       0xFF00,
+       0xFF9E,
+       0xFFA0,
+       0xFFF0,
+       0xFFFC,
+       0x101FD,
+       0x101FE,
+       0x102E0,
+       0x102E1,
+       0x10376,
+       0x1037B,
+       0x10A01,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A10,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10AE5,
+       0x10AE7,
+       0x11000,
+       0x11001,
+       0x11002,
+       0x11003,
+       0x11038,
+       0x11047,
+       0x1107F,
+       0x11082,
+       0x11083,
+       0x110B0,
+       0x110B3,
+       0x110B7,
+       0x110B9,
+       0x110BB,
+       0x110BD,
+       0x110BE,
+       0x11100,
+       0x11103,
+       0x11127,
+       0x1112C,
+       0x1112D,
+       0x11135,
+       0x11173,
+       0x11174,
+       0x11180,
+       0x11182,
+       0x11183,
+       0x111B3,
+       0x111B6,
+       0x111BF,
+       0x111C1,
+       0x1122C,
+       0x1122F,
+       0x11232,
+       0x11234,
+       0x11235,
+       0x11236,
+       0x11238,
+       0x112DF,
+       0x112E0,
+       0x112E3,
+       0x112EB,
+       0x11301,
+       0x11302,
+       0x11304,
+       0x1133C,
+       0x1133D,
+       0x1133E,
+       0x1133F,
+       0x11340,
+       0x11341,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x11362,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x114B0,
+       0x114B1,
+       0x114B3,
+       0x114B9,
+       0x114BA,
+       0x114BB,
+       0x114BD,
+       0x114BE,
+       0x114BF,
+       0x114C1,
+       0x114C2,
+       0x114C4,
+       0x115AF,
+       0x115B0,
+       0x115B2,
+       0x115B6,
+       0x115B8,
+       0x115BC,
+       0x115BE,
+       0x115BF,
+       0x115C1,
+       0x11630,
+       0x11633,
+       0x1163B,
+       0x1163D,
+       0x1163E,
+       0x1163F,
+       0x11641,
+       0x116AB,
+       0x116AC,
+       0x116AD,
+       0x116AE,
+       0x116B0,
+       0x116B6,
+       0x116B7,
+       0x116B8,
+       0x16AF0,
+       0x16AF5,
+       0x16B30,
+       0x16B37,
+       0x16F51,
+       0x16F7F,
+       0x16F8F,
+       0x16F93,
+       0x1BC9D,
+       0x1BC9F,
+       0x1BCA0,
+       0x1BCA4,
+       0x1D165,
+       0x1D166,
+       0x1D167,
+       0x1D16A,
+       0x1D16D,
+       0x1D16E,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1E8D0,
+       0x1E8D7,
+       0x1F1E6,
+       0x1F200,
+       0xE0000,
+       0xE0100,
+       0xE01F0,
+       0xE1000
+};
 
-static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for ASCII/Latin1 */
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define PL_GCB_ENUM_COUNT 14
+
+typedef enum {
+       PL_GCB_Other = 0,
+       PL_GCB_CR = 1,
+       PL_GCB_Control = 2,
+       PL_GCB_EDGE = 3,
+       PL_GCB_Extend = 4,
+       PL_GCB_L = 5,
+       PL_GCB_LF = 6,
+       PL_GCB_LV = 7,
+       PL_GCB_LVT = 8,
+       PL_GCB_Prepend = 9,
+       PL_GCB_Regional_Indicator = 10,
+       PL_GCB_SpacingMark = 11,
+       PL_GCB_T = 12,
+       PL_GCB_V = 13
+} PL_GCB_enum;
+
+static const PL_GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for EBCDIC 1047 */
+       PL_GCB_Control,
+       PL_GCB_CR,
+       PL_GCB_Control,
+       PL_GCB_LF,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_L,
+       PL_GCB_V,
+       PL_GCB_T,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_L,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_Other,
+       PL_GCB_V,
+       PL_GCB_Other,
+       PL_GCB_T,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Regional_Indicator,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Other
+};
+
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_REGCOMP_C)
+
+static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC 1047 */
        45,     /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       700,
-       701,
-       776,
-       777,
-       787,
-       788,
-       834,
-       835,
-       940,
-       941,
-       942,
-       943,
-       945,
-       946,
-       951,
-       952,
-       953,
-       954,
-       961,
-       962,
-       965,
-       966,
-       969,
-       970,
-       974,
-       975,
-       1381,
-       1382,
-       1396,
-       1397,
-       1406,
-       1407,
-       7936,
-       7944,
-       7968,
-       7976,
-       8032,
-       8040,
-       8048,
-       8049,
-       8052,
-       8053,
-       8060,
-       8061
+       0x0,
+       0x2BC,
+       0x2BD,
+       0x308,
+       0x309,
+       0x313,
+       0x314,
+       0x342,
+       0x343,
+       0x3AC,
+       0x3AD,
+       0x3AE,
+       0x3AF,
+       0x3B1,
+       0x3B2,
+       0x3B7,
+       0x3B8,
+       0x3B9,
+       0x3BA,
+       0x3C1,
+       0x3C2,
+       0x3C5,
+       0x3C6,
+       0x3C9,
+       0x3CA,
+       0x3CE,
+       0x3CF,
+       0x565,
+       0x566,
+       0x574,
+       0x575,
+       0x57E,
+       0x57F,
+       0x1F00,
+       0x1F08,
+       0x1F20,
+       0x1F28,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1F71,
+       0x1F74,
+       0x1F75,
+       0x1F7C,
+       0x1F7D
 };
 
-#ifndef PERL_IN_XSUB_RE
-
-static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for ASCII/Latin1 */
-       59,     /* Number of elements */
+static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 1047 */
+       267,    /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       223,
-       224,
-       304,
-       305,
-       329,
-       330,
-       496,
-       497,
-       912,
-       913,
-       944,
-       945,
-       1415,
-       1416,
-       7830,
-       7835,
-       7838,
-       7839,
-       8016,
-       8017,
-       8018,
-       8019,
-       8020,
-       8021,
-       8022,
-       8023,
-       8064,
-       8112,
-       8114,
-       8117,
-       8118,
-       8120,
-       8124,
-       8125,
-       8130,
-       8133,
-       8134,
-       8136,
-       8140,
-       8141,
-       8146,
-       8148,
-       8150,
-       8152,
-       8162,
-       8165,
-       8166,
-       8168,
-       8178,
-       8181,
-       8182,
-       8184,
-       8188,
-       8189,
-       64256,
-       64263,
-       64275,
-       64280
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9A,
+       0x9C,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAD,
+       0xAE,
+       0xAF,
+       0xBA,
+       0xBB,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFB,
+       0xFF,
+       0x100,
+       0x131,
+       0x132,
+       0x138,
+       0x139,
+       0x18D,
+       0x18E,
+       0x19B,
+       0x19C,
+       0x1AA,
+       0x1AC,
+       0x1BA,
+       0x1BC,
+       0x1BE,
+       0x1BF,
+       0x1C0,
+       0x1C4,
+       0x221,
+       0x222,
+       0x234,
+       0x23A,
+       0x255,
+       0x256,
+       0x258,
+       0x259,
+       0x25A,
+       0x25B,
+       0x25D,
+       0x260,
+       0x262,
+       0x263,
+       0x264,
+       0x265,
+       0x267,
+       0x268,
+       0x26A,
+       0x26B,
+       0x26D,
+       0x26F,
+       0x270,
+       0x271,
+       0x273,
+       0x275,
+       0x276,
+       0x27D,
+       0x27E,
+       0x280,
+       0x281,
+       0x283,
+       0x284,
+       0x287,
+       0x28D,
+       0x292,
+       0x293,
+       0x29E,
+       0x29F,
+       0x2BC,
+       0x2BD,
+       0x2BE,
+       0x2BF,
+       0x300,
+       0x302,
+       0x307,
+       0x309,
+       0x30A,
+       0x30B,
+       0x30C,
+       0x30D,
+       0x313,
+       0x314,
+       0x331,
+       0x332,
+       0x342,
+       0x343,
+       0x345,
+       0x346,
+       0x370,
+       0x374,
+       0x376,
+       0x378,
+       0x37B,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3D2,
+       0x3D5,
+       0x3F6,
+       0x3F7,
+       0x3FC,
+       0x3FD,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x561,
+       0x588,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x1D79,
+       0x1D7A,
+       0x1D7D,
+       0x1D7E,
+       0x1E00,
+       0x1E9C,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2126,
+       0x2127,
+       0x212A,
+       0x212C,
+       0x2132,
+       0x2133,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2180,
+       0x2183,
+       0x2185,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2C71,
+       0x2C72,
+       0x2C74,
+       0x2C75,
+       0x2C77,
+       0x2C7E,
+       0x2CE4,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0xA640,
+       0xA66E,
+       0xA680,
+       0xA69C,
+       0xA722,
+       0xA730,
+       0xA732,
+       0xA770,
+       0xA779,
+       0xA788,
+       0xA78B,
+       0xA78E,
+       0xA790,
+       0xA794,
+       0xA796,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0x10400,
+       0x10450,
+       0x118A0,
+       0x118E0
 };
 
-static const UV UpperLatin1_invlist[] = { /* for ASCII/Latin1 */
-       3,      /* Number of elements */
+static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC 1047 */
+       59,     /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       128,
-       256
+       0x0,
+       0x59,
+       0x5A,
+       0x130,
+       0x131,
+       0x149,
+       0x14A,
+       0x1F0,
+       0x1F1,
+       0x390,
+       0x391,
+       0x3B0,
+       0x3B1,
+       0x587,
+       0x588,
+       0x1E96,
+       0x1E9B,
+       0x1E9E,
+       0x1E9F,
+       0x1F50,
+       0x1F51,
+       0x1F52,
+       0x1F53,
+       0x1F54,
+       0x1F55,
+       0x1F56,
+       0x1F57,
+       0x1F80,
+       0x1FB0,
+       0x1FB2,
+       0x1FB5,
+       0x1FB6,
+       0x1FB8,
+       0x1FBC,
+       0x1FBD,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FC8,
+       0x1FCC,
+       0x1FCD,
+       0x1FD2,
+       0x1FD4,
+       0x1FD6,
+       0x1FD8,
+       0x1FE2,
+       0x1FE5,
+       0x1FE6,
+       0x1FE8,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FF8,
+       0x1FFC,
+       0x1FFD,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18
 };
 
-static const UV _Perl_IDStart_invlist[] = { /* for ASCII/Latin1 */
-       1095,   /* Number of elements */
+#endif /* defined(PERL_IN_REGCOMP_C) */
+
+#if defined(PERL_IN_UTF8_C)
+
+static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
+       1291,   /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       65,
-       91,
-       95,
-       96,
-       97,
-       123,
-       170,
-       171,
-       181,
-       182,
-       186,
-       187,
-       192,
-       215,
-       216,
-       247,
-       248,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       880,
-       885,
-       886,
-       888,
-       891,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1488,
-       1515,
-       1520,
-       1523,
-       1568,
-       1611,
-       1646,
-       1648,
-       1649,
-       1748,
-       1749,
-       1750,
-       1765,
-       1767,
-       1774,
-       1776,
-       1786,
-       1789,
-       1791,
-       1792,
-       1808,
-       1809,
-       1810,
-       1840,
-       1869,
-       1958,
-       1969,
-       1970,
-       1994,
-       2027,
-       2036,
-       2038,
-       2042,
-       2043,
-       2048,
-       2070,
-       2074,
-       2075,
-       2084,
-       2085,
-       2088,
-       2089,
-       2112,
-       2137,
-       2208,
-       2227,
-       2308,
-       2362,
-       2365,
-       2366,
-       2384,
-       2385,
-       2392,
-       2402,
-       2417,
-       2433,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2493,
-       2494,
-       2510,
-       2511,
-       2524,
-       2526,
-       2527,
-       2530,
-       2544,
-       2546,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2649,
-       2653,
-       2654,
-       2655,
-       2674,
-       2677,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2749,
-       2750,
-       2768,
-       2769,
-       2784,
-       2786,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2877,
-       2878,
-       2908,
-       2910,
-       2911,
-       2914,
-       2929,
-       2930,
-       2947,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3024,
-       3025,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3134,
-       3160,
-       3162,
-       3168,
-       3170,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3261,
-       3262,
-       3294,
-       3295,
-       3296,
-       3298,
-       3313,
-       3315,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3390,
-       3406,
-       3407,
-       3424,
-       3426,
-       3450,
-       3456,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3585,
-       3633,
-       3634,
-       3635,
-       3648,
-       3655,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3761,
-       3762,
-       3763,
-       3773,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3804,
-       3808,
-       3840,
-       3841,
-       3904,
-       3912,
-       3913,
-       3949,
-       3976,
-       3981,
-       4096,
-       4139,
-       4159,
-       4160,
-       4176,
-       4182,
-       4186,
-       4190,
-       4193,
-       4194,
-       4197,
-       4199,
-       4206,
-       4209,
-       4213,
-       4226,
-       4238,
-       4239,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5906,
-       5920,
-       5938,
-       5952,
-       5970,
-       5984,
-       5997,
-       5998,
-       6001,
-       6016,
-       6068,
-       6103,
-       6104,
-       6108,
-       6109,
-       6176,
-       6264,
-       6272,
-       6313,
-       6314,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6480,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6593,
-       6600,
-       6656,
-       6679,
-       6688,
-       6741,
-       6823,
-       6824,
-       6917,
-       6964,
-       6981,
-       6988,
-       7043,
-       7073,
-       7086,
-       7088,
-       7098,
-       7142,
-       7168,
-       7204,
-       7245,
-       7248,
-       7258,
-       7294,
-       7401,
-       7405,
-       7406,
-       7410,
-       7413,
-       7415,
-       7424,
-       7616,
-       7680,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11648,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       12293,
-       12296,
-       12321,
-       12330,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42528,
-       42538,
-       42540,
-       42560,
-       42607,
-       42623,
-       42654,
-       42656,
-       42736,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43010,
-       43011,
-       43014,
-       43015,
-       43019,
-       43020,
-       43043,
-       43072,
-       43124,
-       43138,
-       43188,
-       43250,
-       43256,
-       43259,
-       43260,
-       43274,
-       43302,
-       43312,
-       43335,
-       43360,
-       43389,
-       43396,
-       43443,
-       43471,
-       43472,
-       43488,
-       43493,
-       43494,
-       43504,
-       43514,
-       43519,
-       43520,
-       43561,
-       43584,
-       43587,
-       43588,
-       43596,
-       43616,
-       43639,
-       43642,
-       43643,
-       43646,
-       43696,
-       43697,
-       43698,
-       43701,
-       43703,
-       43705,
-       43710,
-       43712,
-       43713,
-       43714,
-       43715,
-       43739,
-       43742,
-       43744,
-       43755,
-       43762,
-       43765,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44003,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64286,
-       64287,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64606,
-       64612,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65018,
-       65137,
-       65138,
-       65139,
-       65140,
-       65143,
-       65144,
-       65145,
-       65146,
-       65147,
-       65148,
-       65149,
-       65150,
-       65151,
-       65277,
-       65313,
-       65339,
-       65345,
-       65371,
-       65382,
-       65438,
-       65440,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66176,
-       66205,
-       66208,
-       66257,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66422,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68097,
-       68112,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68325,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69635,
-       69688,
-       69763,
-       69808,
-       69840,
-       69865,
-       69891,
-       69927,
-       69968,
-       70003,
-       70006,
-       70007,
-       70019,
-       70067,
-       70081,
-       70085,
-       70106,
-       70107,
-       70144,
-       70162,
-       70163,
-       70188,
-       70320,
-       70367,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70461,
-       70462,
-       70493,
-       70498,
-       70784,
-       70832,
-       70852,
-       70854,
-       70855,
-       70856,
-       71040,
-       71087,
-       71168,
-       71216,
-       71236,
-       71237,
-       71296,
-       71339,
-       71840,
-       71904,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92880,
-       92910,
-       92928,
-       92976,
-       92992,
-       92996,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94033,
-       94099,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       124928,
-       125125,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x6D,
+       0x6E,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAD,
+       0xAE,
+       0xAF,
+       0xBA,
+       0xBB,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xFA,
+       0xFB,
+       0xFF,
+       0x100,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x300,
+       0x375,
+       0x376,
+       0x378,
+       0x37B,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x483,
+       0x488,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x610,
+       0x61B,
+       0x620,
+       0x66A,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x6DD,
+       0x6DF,
+       0x6E9,
+       0x6EA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x74B,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x82E,
+       0x840,
+       0x85C,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE3B,
+       0xE40,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF18,
+       0xF1A,
+       0xF20,
+       0xF2A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF85,
+       0xF86,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x1000,
+       0x104A,
+       0x1050,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1715,
+       0x1720,
+       0x1735,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17D4,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x180B,
+       0x180E,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1946,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A1C,
+       0x1A20,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA7,
+       0x1AA8,
+       0x1AB0,
+       0x1ABE,
+       0x1B00,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1BF4,
+       0x1C00,
+       0x1C38,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C7E,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DF6,
+       0x1DFC,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x203F,
+       0x2041,
+       0x2054,
+       0x2055,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x20D0,
+       0x20DD,
+       0x20E1,
+       0x20E2,
+       0x20E5,
+       0x20F1,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D7F,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x3030,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x309B,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA62C,
+       0xA640,
+       0xA670,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6F2,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA8C5,
+       0xA8D0,
+       0xA8DA,
+       0xA8E0,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA92E,
+       0xA930,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA9C1,
+       0xA9CF,
+       0xA9DA,
+       0xA9E0,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEB,
+       0xABEC,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFC5E,
+       0xFC64,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFA,
+       0xFE00,
+       0xFE10,
+       0xFE20,
+       0xFE2E,
+       0xFE33,
+       0xFE35,
+       0xFE4D,
+       0xFE50,
+       0xFE71,
+       0xFE72,
+       0xFE73,
+       0xFE74,
+       0xFE77,
+       0xFE78,
+       0xFE79,
+       0xFE7A,
+       0xFE7B,
+       0xFE7C,
+       0xFE7D,
+       0xFE7E,
+       0xFE7F,
+       0xFEFD,
+       0xFF10,
+       0xFF1A,
+       0xFF21,
+       0xFF3B,
+       0xFF3F,
+       0xFF40,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x101FD,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102E1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE7,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11047,
+       0x11066,
+       0x11070,
+       0x1107F,
+       0x110BB,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11135,
+       0x11136,
+       0x11140,
+       0x11150,
+       0x11174,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x111C5,
+       0x111D0,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x11238,
+       0x112B0,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115C1,
+       0x11600,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF5,
+       0x16B00,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F8F,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9D,
+       0x1BC9F,
+       0x1D165,
+       0x1D16A,
+       0x1D16D,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8D0,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0100,
+       0xE01F0
 };
 
-static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
-       1267,   /* Number of elements */
+static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 1047 */
+       1121,   /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       48,
-       58,
-       65,
-       91,
-       95,
-       96,
-       97,
-       123,
-       170,
-       171,
-       181,
-       182,
-       186,
-       187,
-       192,
-       215,
-       216,
-       247,
-       248,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       768,
-       885,
-       886,
-       888,
-       891,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1155,
-       1160,
-       1162,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1425,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1480,
-       1488,
-       1515,
-       1520,
-       1523,
-       1552,
-       1563,
-       1568,
-       1642,
-       1646,
-       1748,
-       1749,
-       1757,
-       1759,
-       1769,
-       1770,
-       1789,
-       1791,
-       1792,
-       1808,
-       1867,
-       1869,
-       1970,
-       1984,
-       2038,
-       2042,
-       2043,
-       2048,
-       2094,
-       2112,
-       2140,
-       2208,
-       2227,
-       2276,
-       2404,
-       2406,
-       2416,
-       2417,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2492,
-       2501,
-       2503,
-       2505,
-       2507,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2546,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2620,
-       2621,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2638,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2748,
-       2758,
-       2759,
-       2762,
-       2763,
-       2766,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2800,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2876,
-       2885,
-       2887,
-       2889,
-       2891,
-       2894,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2928,
-       2929,
-       2930,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3022,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3056,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3150,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3260,
-       3269,
-       3270,
-       3273,
-       3274,
-       3278,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3440,
-       3450,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3530,
-       3531,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3572,
-       3585,
-       3643,
-       3648,
-       3663,
-       3664,
-       3674,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3784,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3841,
-       3864,
-       3866,
-       3872,
-       3882,
-       3893,
-       3894,
-       3895,
-       3896,
-       3897,
-       3898,
-       3902,
-       3912,
-       3913,
-       3949,
-       3953,
-       3973,
-       3974,
-       3992,
-       3993,
-       4029,
-       4038,
-       4039,
-       4096,
-       4170,
-       4176,
-       4254,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4957,
-       4960,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5909,
-       5920,
-       5941,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6100,
-       6103,
-       6104,
-       6108,
-       6110,
-       6112,
-       6122,
-       6155,
-       6158,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6460,
-       6470,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6618,
-       6656,
-       6684,
-       6688,
-       6751,
-       6752,
-       6781,
-       6783,
-       6794,
-       6800,
-       6810,
-       6823,
-       6824,
-       6832,
-       6846,
-       6912,
-       6988,
-       6992,
-       7002,
-       7019,
-       7028,
-       7040,
-       7156,
-       7168,
-       7224,
-       7232,
-       7242,
-       7245,
-       7294,
-       7376,
-       7379,
-       7380,
-       7415,
-       7416,
-       7418,
-       7424,
-       7670,
-       7676,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8255,
-       8257,
-       8276,
-       8277,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8400,
-       8413,
-       8417,
-       8418,
-       8421,
-       8433,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11647,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11776,
-       12293,
-       12296,
-       12321,
-       12336,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12441,
-       12443,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42540,
-       42560,
-       42608,
-       42612,
-       42622,
-       42623,
-       42654,
-       42655,
-       42738,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43048,
-       43072,
-       43124,
-       43136,
-       43205,
-       43216,
-       43226,
-       43232,
-       43256,
-       43259,
-       43260,
-       43264,
-       43310,
-       43312,
-       43348,
-       43360,
-       43389,
-       43392,
-       43457,
-       43471,
-       43482,
-       43488,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43616,
-       43639,
-       43642,
-       43715,
-       43739,
-       43742,
-       43744,
-       43760,
-       43762,
-       43767,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44011,
-       44012,
-       44014,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64606,
-       64612,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65018,
-       65024,
-       65040,
-       65056,
-       65070,
-       65075,
-       65077,
-       65101,
-       65104,
-       65137,
-       65138,
-       65139,
-       65140,
-       65143,
-       65144,
-       65145,
-       65146,
-       65147,
-       65148,
-       65149,
-       65150,
-       65151,
-       65277,
-       65296,
-       65306,
-       65313,
-       65339,
-       65343,
-       65344,
-       65345,
-       65371,
-       65382,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66045,
-       66046,
-       66176,
-       66205,
-       66208,
-       66257,
-       66272,
-       66273,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68152,
-       68155,
-       68159,
-       68160,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68327,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69632,
-       69703,
-       69734,
-       69744,
-       69759,
-       69819,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69941,
-       69942,
-       69952,
-       69968,
-       70004,
-       70006,
-       70007,
-       70016,
-       70085,
-       70096,
-       70107,
-       70144,
-       70162,
-       70163,
-       70200,
-       70320,
-       70379,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70460,
-       70469,
-       70471,
-       70473,
-       70475,
-       70478,
-       70487,
-       70488,
-       70493,
-       70500,
-       70502,
-       70509,
-       70512,
-       70517,
-       70784,
-       70854,
-       70855,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71105,
-       71168,
-       71233,
-       71236,
-       71237,
-       71248,
-       71258,
-       71296,
-       71352,
-       71360,
-       71370,
-       71840,
-       71914,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92880,
-       92910,
-       92912,
-       92917,
-       92928,
-       92983,
-       92992,
-       92996,
-       93008,
-       93018,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94095,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113821,
-       113823,
-       119141,
-       119146,
-       119149,
-       119155,
-       119163,
-       119171,
-       119173,
-       119180,
-       119210,
-       119214,
-       119362,
-       119365,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       125136,
-       125143,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102,
-       917760,
-       918000
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x6D,
+       0x6E,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAD,
+       0xAE,
+       0xAF,
+       0xBA,
+       0xBB,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFB,
+       0xFF,
+       0x100,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x370,
+       0x375,
+       0x376,
+       0x378,
+       0x37B,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x620,
+       0x64B,
+       0x66E,
+       0x670,
+       0x671,
+       0x6D4,
+       0x6D5,
+       0x6D6,
+       0x6E5,
+       0x6E7,
+       0x6EE,
+       0x6F0,
+       0x6FA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x711,
+       0x712,
+       0x730,
+       0x74D,
+       0x7A6,
+       0x7B1,
+       0x7B2,
+       0x7CA,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x816,
+       0x81A,
+       0x81B,
+       0x824,
+       0x825,
+       0x828,
+       0x829,
+       0x840,
+       0x859,
+       0x8A0,
+       0x8B3,
+       0x904,
+       0x93A,
+       0x93D,
+       0x93E,
+       0x950,
+       0x951,
+       0x958,
+       0x962,
+       0x971,
+       0x981,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BD,
+       0x9BE,
+       0x9CE,
+       0x9CF,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E2,
+       0x9F0,
+       0x9F2,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA72,
+       0xA75,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABD,
+       0xABE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE2,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3D,
+       0xB3E,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB62,
+       0xB71,
+       0xB72,
+       0xB83,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBD0,
+       0xBD1,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC3E,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC62,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBD,
+       0xCBE,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE2,
+       0xCF1,
+       0xCF3,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD3E,
+       0xD4E,
+       0xD4F,
+       0xD60,
+       0xD62,
+       0xD7A,
+       0xD80,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xE01,
+       0xE31,
+       0xE32,
+       0xE33,
+       0xE40,
+       0xE47,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEB1,
+       0xEB2,
+       0xEB3,
+       0xEBD,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF88,
+       0xF8D,
+       0x1000,
+       0x102B,
+       0x103F,
+       0x1040,
+       0x1050,
+       0x1056,
+       0x105A,
+       0x105E,
+       0x1061,
+       0x1062,
+       0x1065,
+       0x1067,
+       0x106E,
+       0x1071,
+       0x1075,
+       0x1082,
+       0x108E,
+       0x108F,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1712,
+       0x1720,
+       0x1732,
+       0x1740,
+       0x1752,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1780,
+       0x17B4,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DD,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18A9,
+       0x18AA,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1950,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19C1,
+       0x19C8,
+       0x1A00,
+       0x1A17,
+       0x1A20,
+       0x1A55,
+       0x1AA7,
+       0x1AA8,
+       0x1B05,
+       0x1B34,
+       0x1B45,
+       0x1B4C,
+       0x1B83,
+       0x1BA1,
+       0x1BAE,
+       0x1BB0,
+       0x1BBA,
+       0x1BE6,
+       0x1C00,
+       0x1C24,
+       0x1C4D,
+       0x1C50,
+       0x1C5A,
+       0x1C7E,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF2,
+       0x1CF5,
+       0x1CF7,
+       0x1D00,
+       0x1DC0,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x302A,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA620,
+       0xA62A,
+       0xA62C,
+       0xA640,
+       0xA66F,
+       0xA67F,
+       0xA69E,
+       0xA6A0,
+       0xA6F0,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA823,
+       0xA840,
+       0xA874,
+       0xA882,
+       0xA8B4,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA90A,
+       0xA926,
+       0xA930,
+       0xA947,
+       0xA960,
+       0xA97D,
+       0xA984,
+       0xA9B3,
+       0xA9CF,
+       0xA9D0,
+       0xA9E0,
+       0xA9E5,
+       0xA9E6,
+       0xA9F0,
+       0xA9FA,
+       0xA9FF,
+       0xAA00,
+       0xAA29,
+       0xAA40,
+       0xAA43,
+       0xAA44,
+       0xAA4C,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAA7B,
+       0xAA7E,
+       0xAAB0,
+       0xAAB1,
+       0xAAB2,
+       0xAAB5,
+       0xAAB7,
+       0xAAB9,
+       0xAABE,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAEB,
+       0xAAF2,
+       0xAAF5,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABE3,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB1E,
+       0xFB1F,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFC5E,
+       0xFC64,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFA,
+       0xFE71,
+       0xFE72,
+       0xFE73,
+       0xFE74,
+       0xFE77,
+       0xFE78,
+       0xFE79,
+       0xFE7A,
+       0xFE7B,
+       0xFE7C,
+       0xFE7D,
+       0xFE7E,
+       0xFE7F,
+       0xFEFD,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFF9E,
+       0xFFA0,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x10376,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A01,
+       0x10A10,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11003,
+       0x11038,
+       0x11083,
+       0x110B0,
+       0x110D0,
+       0x110E9,
+       0x11103,
+       0x11127,
+       0x11150,
+       0x11173,
+       0x11176,
+       0x11177,
+       0x11183,
+       0x111B3,
+       0x111C1,
+       0x111C5,
+       0x111DA,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1122C,
+       0x112B0,
+       0x112DF,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133D,
+       0x1133E,
+       0x1135D,
+       0x11362,
+       0x11480,
+       0x114B0,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x11580,
+       0x115AF,
+       0x11600,
+       0x11630,
+       0x11644,
+       0x11645,
+       0x11680,
+       0x116AB,
+       0x118A0,
+       0x118E0,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16AD0,
+       0x16AEE,
+       0x16B00,
+       0x16B30,
+       0x16B40,
+       0x16B44,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F51,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1E800,
+       0x1E8C5,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E
 };
 
-#endif /* #ifndef PERL_IN_XSUB_RE */
-
-#endif /* ASCII/Latin1 */
-
-#if 'A' == 193 /* EBCDIC 1047 */ \
-     && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
-     && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
-     && '$' == 91 && '@' == 124 && '`' == 121
+#endif /* defined(PERL_IN_UTF8_C) */
 
-#ifndef PERL_IN_XSUB_RE
+#if defined(PERL_IN_PERL_C)
 
-static const UV ASCII_invlist[] = { /* for EBCDIC 1047 */
-       54,     /* Number of elements */
+static const UV Sentence_Break_invlist[] = { /* for EBCDIC 1047 */
+       2859,   /* Number of elements */
        148565664, /* Version and data structure type */
        0,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       4,
-       5,
-       6,
-       7,
-       8,
-       11,
-       20,
-       21,
-       23,
-       24,
-       26,
-       28,
-       32,
-       38,
-       40,
-       45,
-       48,
-       50,
-       51,
-       55,
-       56,
-       60,
-       62,
-       63,
-       65,
-       75,
-       81,
-       90,
-       98,
-       107,
-       112,
-       121,
-       128,
-       129,
-       138,
-       145,
-       154,
-       161,
-       170,
-       173,
-       174,
-       189,
-       190,
-       192,
-       202,
-       208,
-       218,
-       224,
-       225,
-       226,
-       234,
-       240,
-       250
+       0x0,
+       0x5,
+       0x6,
+       0xB,
+       0xD,
+       0xE,
+       0x15,
+       0x16,
+       0x25,
+       0x26,
+       0x40,
+       0x42,
+       0x4A,
+       0x4B,
+       0x4C,
+       0x4D,
+       0x4E,
+       0x51,
+       0x5A,
+       0x5B,
+       0x5D,
+       0x5E,
+       0x60,
+       0x61,
+       0x62,
+       0x6A,
+       0x6B,
+       0x6C,
+       0x6F,
+       0x70,
+       0x71,
+       0x79,
+       0x7A,
+       0x7B,
+       0x7D,
+       0x7E,
+       0x7F,
+       0x80,
+       0x81,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAD,
+       0xAE,
+       0xAF,
+       0xBA,
+       0xBB,
+       0xBD,
+       0xBE,
+       0xC0,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFA,
+       0xFB,
+       0xFF,
+       0x100,
+       0x101,
+       0x102,
+       0x103,
+       0x104,
+       0x105,
+       0x106,
+       0x107,
+       0x108,
+       0x109,
+       0x10A,
+       0x10B,
+       0x10C,
+       0x10D,
+       0x10E,
+       0x10F,
+       0x110,
+       0x111,
+       0x112,
+       0x113,
+       0x114,
+       0x115,
+       0x116,
+       0x117,
+       0x118,
+       0x119,
+       0x11A,
+       0x11B,
+       0x11C,
+       0x11D,
+       0x11E,
+       0x11F,
+       0x120,
+       0x121,
+       0x122,
+       0x123,
+       0x124,
+       0x125,
+       0x126,
+       0x127,
+       0x128,
+       0x129,
+       0x12A,
+       0x12B,
+       0x12C,
+       0x12D,
+       0x12E,
+       0x12F,
+       0x130,
+       0x131,
+       0x132,
+       0x133,
+       0x134,
+       0x135,
+       0x136,
+       0x137,
+       0x139,
+       0x13A,
+       0x13B,
+       0x13C,
+       0x13D,
+       0x13E,
+       0x13F,
+       0x140,
+       0x141,
+       0x142,
+       0x143,
+       0x144,
+       0x145,
+       0x146,
+       0x147,
+       0x148,
+       0x14A,
+       0x14B,
+       0x14C,
+       0x14D,
+       0x14E,
+       0x14F,
+       0x150,
+       0x151,
+       0x152,
+       0x153,
+       0x154,
+       0x155,
+       0x156,
+       0x157,
+       0x158,
+       0x159,
+       0x15A,
+       0x15B,
+       0x15C,
+       0x15D,
+       0x15E,
+       0x15F,
+       0x160,
+       0x161,
+       0x162,
+       0x163,
+       0x164,
+       0x165,
+       0x166,
+       0x167,
+       0x168,
+       0x169,
+       0x16A,
+       0x16B,
+       0x16C,
+       0x16D,
+       0x16E,
+       0x16F,
+       0x170,
+       0x171,
+       0x172,
+       0x173,
+       0x174,
+       0x175,
+       0x176,
+       0x177,
+       0x178,
+       0x17A,
+       0x17B,
+       0x17C,
+       0x17D,
+       0x17E,
+       0x181,
+       0x183,
+       0x184,
+       0x185,
+       0x186,
+       0x188,
+       0x189,
+       0x18C,
+       0x18E,
+       0x192,
+       0x193,
+       0x195,
+       0x196,
+       0x199,
+       0x19C,
+       0x19E,
+       0x19F,
+       0x1A1,
+       0x1A2,
+       0x1A3,
+       0x1A4,
+       0x1A5,
+       0x1A6,
+       0x1A8,
+       0x1A9,
+       0x1AA,
+       0x1AC,
+       0x1AD,
+       0x1AE,
+       0x1B0,
+       0x1B1,
+       0x1B4,
+       0x1B5,
+       0x1B6,
+       0x1B7,
+       0x1B9,
+       0x1BB,
+       0x1BC,
+       0x1BD,
+       0x1C0,
+       0x1C4,
+       0x1C6,
+       0x1C7,
+       0x1C9,
+       0x1CA,
+       0x1CC,
+       0x1CD,
+       0x1CE,
+       0x1CF,
+       0x1D0,
+       0x1D1,
+       0x1D2,
+       0x1D3,
+       0x1D4,
+       0x1D5,
+       0x1D6,
+       0x1D7,
+       0x1D8,
+       0x1D9,
+       0x1DA,
+       0x1DB,
+       0x1DC,
+       0x1DE,
+       0x1DF,
+       0x1E0,
+       0x1E1,
+       0x1E2,
+       0x1E3,
+       0x1E4,
+       0x1E5,
+       0x1E6,
+       0x1E7,
+       0x1E8,
+       0x1E9,
+       0x1EA,
+       0x1EB,
+       0x1EC,
+       0x1ED,
+       0x1EE,
+       0x1EF,
+       0x1F1,
+       0x1F3,
+       0x1F4,
+       0x1F5,
+       0x1F6,
+       0x1F9,
+       0x1FA,
+       0x1FB,
+       0x1FC,
+       0x1FD,
+       0x1FE,
+       0x1FF,
+       0x200,
+       0x201,
+       0x202,
+       0x203,
+       0x204,
+       0x205,
+       0x206,
+       0x207,
+       0x208,
+       0x209,
+       0x20A,
+       0x20B,
+       0x20C,
+       0x20D,
+       0x20E,
+       0x20F,
+       0x210,
+       0x211,
+       0x212,
+       0x213,
+       0x214,
+       0x215,
+       0x216,
+       0x217,
+       0x218,
+       0x219,
+       0x21A,
+       0x21B,
+       0x21C,
+       0x21D,
+       0x21E,
+       0x21F,
+       0x220,
+       0x221,
+       0x222,
+       0x223,
+       0x224,
+       0x225,
+       0x226,
+       0x227,
+       0x228,
+       0x229,
+       0x22A,
+       0x22B,
+       0x22C,
+       0x22D,
+       0x22E,
+       0x22F,
+       0x230,
+       0x231,
+       0x232,
+       0x233,
+       0x23A,
+       0x23C,
+       0x23D,
+       0x23F,
+       0x241,
+       0x242,
+       0x243,
+       0x247,
+       0x248,
+       0x249,
+       0x24A,
+       0x24B,
+       0x24C,
+       0x24D,
+       0x24E,
+       0x24F,
+       0x294,
+       0x295,
+       0x2B9,
+       0x2C0,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x300,
+       0x370,
+       0x371,
+       0x372,
+       0x373,
+       0x374,
+       0x375,
+       0x376,
+       0x377,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x390,
+       0x391,
+       0x3A2,
+       0x3A3,
+       0x3AC,
+       0x3CF,
+       0x3D0,
+       0x3D2,
+       0x3D5,
+       0x3D8,
+       0x3D9,
+       0x3DA,
+       0x3DB,
+       0x3DC,
+       0x3DD,
+       0x3DE,
+       0x3DF,
+       0x3E0,
+       0x3E1,
+       0x3E2,
+       0x3E3,
+       0x3E4,
+       0x3E5,
+       0x3E6,
+       0x3E7,
+       0x3E8,
+       0x3E9,
+       0x3EA,
+       0x3EB,
+       0x3EC,
+       0x3ED,
+       0x3EE,
+       0x3EF,
+       0x3F4,
+       0x3F5,
+       0x3F6,
+       0x3F7,
+       0x3F8,
+       0x3F9,
+       0x3FB,
+       0x3FD,
+       0x430,
+       0x460,
+       0x461,
+       0x462,
+       0x463,
+       0x464,
+       0x465,
+       0x466,
+       0x467,
+       0x468,
+       0x469,
+       0x46A,
+       0x46B,
+       0x46C,
+       0x46D,
+       0x46E,
+       0x46F,
+       0x470,
+       0x471,
+       0x472,
+       0x473,
+       0x474,
+       0x475,
+       0x476,
+       0x477,
+       0x478,
+       0x479,
+       0x47A,
+       0x47B,
+       0x47C,
+       0x47D,
+       0x47E,
+       0x47F,
+       0x480,
+       0x481,
+       0x482,
+       0x483,
+       0x48A,
+       0x48B,
+       0x48C,
+       0x48D,
+       0x48E,
+       0x48F,
+       0x490,
+       0x491,
+       0x492,
+       0x493,
+       0x494,
+       0x495,
+       0x496,
+       0x497,
+       0x498,
+       0x499,
+       0x49A,
+       0x49B,
+       0x49C,
+       0x49D,
+       0x49E,
+       0x49F,
+       0x4A0,
+       0x4A1,
+       0x4A2,
+       0x4A3,
+       0x4A4,
+       0x4A5,
+       0x4A6,
+       0x4A7,
+       0x4A8,
+       0x4A9,
+       0x4AA,
+       0x4AB,
+       0x4AC,
+       0x4AD,
+       0x4AE,
+       0x4AF,
+       0x4B0,
+       0x4B1,
+       0x4B2,
+       0x4B3,
+       0x4B4,
+       0x4B5,
+       0x4B6,
+       0x4B7,
+       0x4B8,
+       0x4B9,
+       0x4BA,
+       0x4BB,
+       0x4BC,
+       0x4BD,
+       0x4BE,
+       0x4BF,
+       0x4C0,
+       0x4C2,
+       0x4C3,
+       0x4C4,
+       0x4C5,
+       0x4C6,
+       0x4C7,
+       0x4C8,
+       0x4C9,
+       0x4CA,
+       0x4CB,
+       0x4CC,
+       0x4CD,
+       0x4CE,
+       0x4D0,
+       0x4D1,
+       0x4D2,
+       0x4D3,
+       0x4D4,
+       0x4D5,
+       0x4D6,
+       0x4D7,
+       0x4D8,
+       0x4D9,
+       0x4DA,
+       0x4DB,
+       0x4DC,
+       0x4DD,
+       0x4DE,
+       0x4DF,
+       0x4E0,
+       0x4E1,
+       0x4E2,
+       0x4E3,
+       0x4E4,
+       0x4E5,
+       0x4E6,
+       0x4E7,
+       0x4E8,
+       0x4E9,
+       0x4EA,
+       0x4EB,
+       0x4EC,
+       0x4ED,
+       0x4EE,
+       0x4EF,
+       0x4F0,
+       0x4F1,
+       0x4F2,
+       0x4F3,
+       0x4F4,
+       0x4F5,
+       0x4F6,
+       0x4F7,
+       0x4F8,
+       0x4F9,
+       0x4FA,
+       0x4FB,
+       0x4FC,
+       0x4FD,
+       0x4FE,
+       0x4FF,
+       0x500,
+       0x501,
+       0x502,
+       0x503,
+       0x504,
+       0x505,
+       0x506,
+       0x507,
+       0x508,
+       0x509,
+       0x50A,
+       0x50B,
+       0x50C,
+       0x50D,
+       0x50E,
+       0x50F,
+       0x510,
+       0x511,
+       0x512,
+       0x513,
+       0x514,
+       0x515,
+       0x516,
+       0x517,
+       0x518,
+       0x519,
+       0x51A,
+       0x51B,
+       0x51C,
+       0x51D,
+       0x51E,
+       0x51F,
+       0x520,
+       0x521,
+       0x522,
+       0x523,
+       0x524,
+       0x525,
+       0x526,
+       0x527,
+       0x528,
+       0x529,
+       0x52A,
+       0x52B,
+       0x52C,
+       0x52D,
+       0x52E,
+       0x52F,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x55D,
+       0x55E,
+       0x561,
+       0x588,
+       0x589,
+       0x58A,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F4,
+       0x600,
+       0x606,
+       0x60C,
+       0x60E,
+       0x610,
+       0x61B,
+       0x61C,
+       0x61D,
+       0x61F,
+       0x620,
+       0x64B,
+       0x660,
+       0x66A,
+       0x66B,
+       0x66D,
+       0x66E,
+       0x670,
+       0x671,
+       0x6D4,
+       0x6D5,
+       0x6D6,
+       0x6DD,
+       0x6DE,
+       0x6DF,
+       0x6E5,
+       0x6E7,
+       0x6E9,
+       0x6EA,
+       0x6EE,
+       0x6F0,
+       0x6FA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x703,
+       0x70F,
+       0x710,
+       0x711,
+       0x712,
+       0x730,
+       0x74B,
+       0x74D,
+       0x7A6,
+       0x7B1,
+       0x7B2,
+       0x7C0,
+       0x7CA,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7F8,
+       0x7F9,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x816,
+       0x81A,
+       0x81B,
+       0x824,
+       0x825,
+       0x828,
+       0x829,
+       0x82E,
+       0x840,
+       0x859,
+       0x85C,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x904,
+       0x93A,
+       0x93D,
+       0x93E,
+       0x950,
+       0x951,
+       0x958,
+       0x962,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x981,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9BD,
+       0x9BE,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CE,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E2,
+       0x9E4,
+       0x9E6,
+       0x9F0,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA70,
+       0xA72,
+       0xA75,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xABD,
+       0xABE,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE2,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB3D,
+       0xB3E,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB62,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB83,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC3E,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC62,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCBD,
+       0xCBE,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE2,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD3E,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4E,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD62,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE31,
+       0xE32,
+       0xE34,
+       0xE3B,
+       0xE40,
+       0xE47,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEB1,
+       0xEB2,
+       0xEB4,
+       0xEBA,
+       0xEBB,
+       0xEBD,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF18,
+       0xF1A,
+       0xF20,
+       0xF2A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF85,
+       0xF86,
+       0xF88,
+       0xF8D,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x1000,
+       0x102B,
+       0x103F,
+       0x1040,
+       0x104A,
+       0x104C,
+       0x1050,
+       0x1056,
+       0x105A,
+       0x105E,
+       0x1061,
+       0x1062,
+       0x1065,
+       0x1067,
+       0x106E,
+       0x1071,
+       0x1075,
+       0x1082,
+       0x108E,
+       0x108F,
+       0x1090,
+       0x109A,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x1360,
+       0x1362,
+       0x1363,
+       0x1367,
+       0x1369,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166E,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x169D,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1712,
+       0x1715,
+       0x1720,
+       0x1732,
+       0x1735,
+       0x1737,
+       0x1740,
+       0x1752,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17B4,
+       0x17D4,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DD,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x1802,
+       0x1803,
+       0x1804,
+       0x1808,
+       0x1809,
+       0x180A,
+       0x180B,
+       0x180E,
+       0x180F,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18A9,
+       0x18AA,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1944,
+       0x1946,
+       0x1950,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19C1,
+       0x19C8,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A17,
+       0x1A1C,
+       0x1A20,
+       0x1A55,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A80,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA7,
+       0x1AA8,
+       0x1AAC,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B05,
+       0x1B34,
+       0x1B45,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B5C,
+       0x1B5E,
+       0x1B60,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1B83,
+       0x1BA1,
+       0x1BAE,
+       0x1BB0,
+       0x1BBA,
+       0x1BE6,
+       0x1BF4,
+       0x1C00,
+       0x1C24,
+       0x1C38,
+       0x1C3B,
+       0x1C3D,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C50,
+       0x1C5A,
+       0x1C7E,
+       0x1C80,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF2,
+       0x1CF5,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DC0,
+       0x1DF6,
+       0x1DFC,
+       0x1E00,
+       0x1E01,
+       0x1E02,
+       0x1E03,
+       0x1E04,
+       0x1E05,
+       0x1E06,
+       0x1E07,
+       0x1E08,
+       0x1E09,
+       0x1E0A,
+       0x1E0B,
+       0x1E0C,
+       0x1E0D,
+       0x1E0E,
+       0x1E0F,
+       0x1E10,
+       0x1E11,
+       0x1E12,
+       0x1E13,
+       0x1E14,
+       0x1E15,
+       0x1E16,
+       0x1E17,
+       0x1E18,
+       0x1E19,
+       0x1E1A,
+       0x1E1B,
+       0x1E1C,
+       0x1E1D,
+       0x1E1E,
+       0x1E1F,
+       0x1E20,
+       0x1E21,
+       0x1E22,
+       0x1E23,
+       0x1E24,
+       0x1E25,
+       0x1E26,
+       0x1E27,
+       0x1E28,
+       0x1E29,
+       0x1E2A,
+       0x1E2B,
+       0x1E2C,
+       0x1E2D,
+       0x1E2E,
+       0x1E2F,
+       0x1E30,
+       0x1E31,
+       0x1E32,
+       0x1E33,
+       0x1E34,
+       0x1E35,
+       0x1E36,
+       0x1E37,
+       0x1E38,
+       0x1E39,
+       0x1E3A,
+       0x1E3B,
+       0x1E3C,
+       0x1E3D,
+       0x1E3E,
+       0x1E3F,
+       0x1E40,
+       0x1E41,
+       0x1E42,
+       0x1E43,
+       0x1E44,
+       0x1E45,
+       0x1E46,
+       0x1E47,
+       0x1E48,
+       0x1E49,
+       0x1E4A,
+       0x1E4B,
+       0x1E4C,
+       0x1E4D,
+       0x1E4E,
+       0x1E4F,
+       0x1E50,
+       0x1E51,
+       0x1E52,
+       0x1E53,
+       0x1E54,
+       0x1E55,
+       0x1E56,
+       0x1E57,
+       0x1E58,
+       0x1E59,
+       0x1E5A,
+       0x1E5B,
+       0x1E5C,
+       0x1E5D,
+       0x1E5E,
+       0x1E5F,
+       0x1E60,
+       0x1E61,
+       0x1E62,
+       0x1E63,
+       0x1E64,
+       0x1E65,
+       0x1E66,
+       0x1E67,
+       0x1E68,
+       0x1E69,
+       0x1E6A,
+       0x1E6B,
+       0x1E6C,
+       0x1E6D,
+       0x1E6E,
+       0x1E6F,
+       0x1E70,
+       0x1E71,
+       0x1E72,
+       0x1E73,
+       0x1E74,
+       0x1E75,
+       0x1E76,
+       0x1E77,
+       0x1E78,
+       0x1E79,
+       0x1E7A,
+       0x1E7B,
+       0x1E7C,
+       0x1E7D,
+       0x1E7E,
+       0x1E7F,
+       0x1E80,
+       0x1E81,
+       0x1E82,
+       0x1E83,
+       0x1E84,
+       0x1E85,
+       0x1E86,
+       0x1E87,
+       0x1E88,
+       0x1E89,
+       0x1E8A,
+       0x1E8B,
+       0x1E8C,
+       0x1E8D,
+       0x1E8E,
+       0x1E8F,
+       0x1E90,
+       0x1E91,
+       0x1E92,
+       0x1E93,
+       0x1E94,
+       0x1E95,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1EA1,
+       0x1EA2,
+       0x1EA3,
+       0x1EA4,
+       0x1EA5,
+       0x1EA6,
+       0x1EA7,
+       0x1EA8,
+       0x1EA9,
+       0x1EAA,
+       0x1EAB,
+       0x1EAC,
+       0x1EAD,
+       0x1EAE,
+       0x1EAF,
+       0x1EB0,
+       0x1EB1,
+       0x1EB2,
+       0x1EB3,
+       0x1EB4,
+       0x1EB5,
+       0x1EB6,
+       0x1EB7,
+       0x1EB8,
+       0x1EB9,
+       0x1EBA,
+       0x1EBB,
+       0x1EBC,
+       0x1EBD,
+       0x1EBE,
+       0x1EBF,
+       0x1EC0,
+       0x1EC1,
+       0x1EC2,
+       0x1EC3,
+       0x1EC4,
+       0x1EC5,
+       0x1EC6,
+       0x1EC7,
+       0x1EC8,
+       0x1EC9,
+       0x1ECA,
+       0x1ECB,
+       0x1ECC,
+       0x1ECD,
+       0x1ECE,
+       0x1ECF,
+       0x1ED0,
+       0x1ED1,
+       0x1ED2,
+       0x1ED3,
+       0x1ED4,
+       0x1ED5,
+       0x1ED6,
+       0x1ED7,
+       0x1ED8,
+       0x1ED9,
+       0x1EDA,
+       0x1EDB,
+       0x1EDC,
+       0x1EDD,
+       0x1EDE,
+       0x1EDF,
+       0x1EE0,
+       0x1EE1,
+       0x1EE2,
+       0x1EE3,
+       0x1EE4,
+       0x1EE5,
+       0x1EE6,
+       0x1EE7,
+       0x1EE8,
+       0x1EE9,
+       0x1EEA,
+       0x1EEB,
+       0x1EEC,
+       0x1EED,
+       0x1EEE,
+       0x1EEF,
+       0x1EF0,
+       0x1EF1,
+       0x1EF2,
+       0x1EF3,
+       0x1EF4,
+       0x1EF5,
+       0x1EF6,
+       0x1EF7,
+       0x1EF8,
+       0x1EF9,
+       0x1EFA,
+       0x1EFB,
+       0x1EFC,
+       0x1EFD,
+       0x1EFE,
+       0x1EFF,
+       0x1F08,
+       0x1F10,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F28,
+       0x1F30,
+       0x1F38,
+       0x1F40,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1F7E,
+       0x1F80,
+       0x1F88,
+       0x1F90,
+       0x1F98,
+       0x1FA0,
+       0x1FA8,
+       0x1FB0,
+       0x1FB5,
+       0x1FB6,
+       0x1FB8,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FC8,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FD8,
+       0x1FDC,
+       0x1FE0,
+       0x1FE8,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FF8,
+       0x1FFD,
+       0x2000,
+       0x200B,
+       0x200C,
+       0x200E,
+       0x2010,
+       0x2013,
+       0x2015,
+       0x2018,
+       0x2020,
+       0x2024,
+       0x2025,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x2030,
+       0x2039,
+       0x203B,
+       0x203C,
+       0x203E,
+       0x2045,
+       0x2047,
+       0x204A,
+       0x205F,
+       0x2060,
+       0x2065,
+       0x2066,
+       0x2070,
+       0x2071,
+       0x2072,
+       0x207D,
+       0x207F,
+       0x2080,
+       0x208D,
+       0x208F,
+       0x2090,
+       0x209D,
+       0x20D0,
+       0x20F1,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x210B,
+       0x210E,
+       0x2110,
+       0x2113,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x2130,
+       0x2134,
+       0x2135,
+       0x2139,
+       0x213A,
+       0x213C,
+       0x213E,
+       0x2140,
+       0x2145,
+       0x2146,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2170,
+       0x2180,
+       0x2183,
+       0x2184,
+       0x2185,
+       0x2189,
+       0x2308,
+       0x230C,
+       0x2329,
+       0x232B,
+       0x24B6,
+       0x24D0,
+       0x24EA,
+       0x275B,
+       0x2761,
+       0x2768,
+       0x2776,
+       0x27C5,
+       0x27C7,
+       0x27E6,
+       0x27F0,
+       0x2983,
+       0x2999,
+       0x29D8,
+       0x29DC,
+       0x29FC,
+       0x29FE,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2C61,
+       0x2C62,
+       0x2C65,
+       0x2C67,
+       0x2C68,
+       0x2C69,
+       0x2C6A,
+       0x2C6B,
+       0x2C6C,
+       0x2C6D,
+       0x2C71,
+       0x2C72,
+       0x2C73,
+       0x2C75,
+       0x2C76,
+       0x2C7E,
+       0x2C81,
+       0x2C82,
+       0x2C83,
+       0x2C84,
+       0x2C85,
+       0x2C86,
+       0x2C87,
+       0x2C88,
+       0x2C89,
+       0x2C8A,
+       0x2C8B,
+       0x2C8C,
+       0x2C8D,
+       0x2C8E,
+       0x2C8F,
+       0x2C90,
+       0x2C91,
+       0x2C92,
+       0x2C93,
+       0x2C94,
+       0x2C95,
+       0x2C96,
+       0x2C97,
+       0x2C98,
+       0x2C99,
+       0x2C9A,
+       0x2C9B,
+       0x2C9C,
+       0x2C9D,
+       0x2C9E,
+       0x2C9F,
+       0x2CA0,
+       0x2CA1,
+       0x2CA2,
+       0x2CA3,
+       0x2CA4,
+       0x2CA5,
+       0x2CA6,
+       0x2CA7,
+       0x2CA8,
+       0x2CA9,
+       0x2CAA,
+       0x2CAB,
+       0x2CAC,
+       0x2CAD,
+       0x2CAE,
+       0x2CAF,
+       0x2CB0,
+       0x2CB1,
+       0x2CB2,
+       0x2CB3,
+       0x2CB4,
+       0x2CB5,
+       0x2CB6,
+       0x2CB7,
+       0x2CB8,
+       0x2CB9,
+       0x2CBA,
+       0x2CBB,
+       0x2CBC,
+       0x2CBD,
+       0x2CBE,
+       0x2CBF,
+       0x2CC0,
+       0x2CC1,
+       0x2CC2,
+       0x2CC3,
+       0x2CC4,
+       0x2CC5,
+       0x2CC6,
+       0x2CC7,
+       0x2CC8,
+       0x2CC9,
+       0x2CCA,
+       0x2CCB,
+       0x2CCC,
+       0x2CCD,
+       0x2CCE,
+       0x2CCF,
+       0x2CD0,
+       0x2CD1,
+       0x2CD2,
+       0x2CD3,
+       0x2CD4,
+       0x2CD5,
+       0x2CD6,
+       0x2CD7,
+       0x2CD8,
+       0x2CD9,
+       0x2CDA,
+       0x2CDB,
+       0x2CDC,
+       0x2CDD,
+       0x2CDE,
+       0x2CDF,
+       0x2CE0,
+       0x2CE1,
+       0x2CE2,
+       0x2CE3,
+       0x2CE5,
+       0x2CEB,
+       0x2CEC,
+       0x2CED,
+       0x2CEE,
+       0x2CEF,
+       0x2CF2,
+       0x2CF3,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D7F,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E0E,
+       0x2E1C,
+       0x2E1E,
+       0x2E20,
+       0x2E2A,
+       0x2E2E,
+       0x2E2F,
+       0x2E30,
+       0x2E3C,
+       0x2E3D,
+       0x2E42,
+       0x2E43,
+       0x3000,
+       0x3001,
+       0x3002,
+       0x3003,
+       0x3005,
+       0x3008,
+       0x3012,
+       0x3014,
+       0x301C,
+       0x301D,
+       0x3020,
+       0x3021,
+       0x302A,
+       0x3030,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x309B,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA4FF,
+       0xA500,
+       0xA60D,
+       0xA60E,
+       0xA610,
+       0xA620,
+       0xA62A,
+       0xA62C,
+       0xA640,
+       0xA641,
+       0xA642,
+       0xA643,
+       0xA644,
+       0xA645,
+       0xA646,
+       0xA647,
+       0xA648,
+       0xA649,
+       0xA64A,
+       0xA64B,
+       0xA64C,
+       0xA64D,
+       0xA64E,
+       0xA64F,
+       0xA650,
+       0xA651,
+       0xA652,
+       0xA653,
+       0xA654,
+       0xA655,
+       0xA656,
+       0xA657,
+       0xA658,
+       0xA659,
+       0xA65A,
+       0xA65B,
+       0xA65C,
+       0xA65D,
+       0xA65E,
+       0xA65F,
+       0xA660,
+       0xA661,
+       0xA662,
+       0xA663,
+       0xA664,
+       0xA665,
+       0xA666,
+       0xA667,
+       0xA668,
+       0xA669,
+       0xA66A,
+       0xA66B,
+       0xA66C,
+       0xA66D,
+       0xA66E,
+       0xA66F,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA680,
+       0xA681,
+       0xA682,
+       0xA683,
+       0xA684,
+       0xA685,
+       0xA686,
+       0xA687,
+       0xA688,
+       0xA689,
+       0xA68A,
+       0xA68B,
+       0xA68C,
+       0xA68D,
+       0xA68E,
+       0xA68F,
+       0xA690,
+       0xA691,
+       0xA692,
+       0xA693,
+       0xA694,
+       0xA695,
+       0xA696,
+       0xA697,
+       0xA698,
+       0xA699,
+       0xA69A,
+       0xA69B,
+       0xA69E,
+       0xA69F,
+       0xA6A0,
+       0xA6F0,
+       0xA6F2,
+       0xA6F3,
+       0xA6F4,
+       0xA6F7,
+       0xA6F8,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA723,
+       0xA724,
+       0xA725,
+       0xA726,
+       0xA727,
+       0xA728,
+       0xA729,
+       0xA72A,
+       0xA72B,
+       0xA72C,
+       0xA72D,
+       0xA72E,
+       0xA72F,
+       0xA732,
+       0xA733,
+       0xA734,
+       0xA735,
+       0xA736,
+       0xA737,
+       0xA738,
+       0xA739,
+       0xA73A,
+       0xA73B,
+       0xA73C,
+       0xA73D,
+       0xA73E,
+       0xA73F,
+       0xA740,
+       0xA741,
+       0xA742,
+       0xA743,
+       0xA744,
+       0xA745,
+       0xA746,
+       0xA747,
+       0xA748,
+       0xA749,
+       0xA74A,
+       0xA74B,
+       0xA74C,
+       0xA74D,
+       0xA74E,
+       0xA74F,
+       0xA750,
+       0xA751,
+       0xA752,
+       0xA753,
+       0xA754,
+       0xA755,
+       0xA756,
+       0xA757,
+       0xA758,
+       0xA759,
+       0xA75A,
+       0xA75B,
+       0xA75C,
+       0xA75D,
+       0xA75E,
+       0xA75F,
+       0xA760,
+       0xA761,
+       0xA762,
+       0xA763,
+       0xA764,
+       0xA765,
+       0xA766,
+       0xA767,
+       0xA768,
+       0xA769,
+       0xA76A,
+       0xA76B,
+       0xA76C,
+       0xA76D,
+       0xA76E,
+       0xA76F,
+       0xA779,
+       0xA77A,
+       0xA77B,
+       0xA77C,
+       0xA77D,
+       0xA77F,
+       0xA780,
+       0xA781,
+       0xA782,
+       0xA783,
+       0xA784,
+       0xA785,
+       0xA786,
+       0xA787,
+       0xA788,
+       0xA789,
+       0xA78B,
+       0xA78C,
+       0xA78D,
+       0xA78E,
+       0xA78F,
+       0xA790,
+       0xA791,
+       0xA792,
+       0xA793,
+       0xA796,
+       0xA797,
+       0xA798,
+       0xA799,
+       0xA79A,
+       0xA79B,
+       0xA79C,
+       0xA79D,
+       0xA79E,
+       0xA79F,
+       0xA7A0,
+       0xA7A1,
+       0xA7A2,
+       0xA7A3,
+       0xA7A4,
+       0xA7A5,
+       0xA7A6,
+       0xA7A7,
+       0xA7A8,
+       0xA7A9,
+       0xA7AA,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA7F8,
+       0xA7FB,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA823,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA876,
+       0xA878,
+       0xA880,
+       0xA882,
+       0xA8B4,
+       0xA8C5,
+       0xA8CE,
+       0xA8D0,
+       0xA8DA,
+       0xA8E0,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA90A,
+       0xA926,
+       0xA92E,
+       0xA92F,
+       0xA930,
+       0xA947,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA984,
+       0xA9B3,
+       0xA9C1,
+       0xA9C8,
+       0xA9CA,
+       0xA9CF,
+       0xA9D0,
+       0xA9DA,
+       0xA9E0,
+       0xA9E5,
+       0xA9E6,
+       0xA9F0,
+       0xA9FA,
+       0xA9FF,
+       0xAA00,
+       0xAA29,
+       0xAA37,
+       0xAA40,
+       0xAA43,
+       0xAA44,
+       0xAA4C,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA5D,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAA7B,
+       0xAA7E,
+       0xAAB0,
+       0xAAB1,
+       0xAAB2,
+       0xAAB5,
+       0xAAB7,
+       0xAAB9,
+       0xAABE,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAEB,
+       0xAAF0,
+       0xAAF2,
+       0xAAF5,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABE3,
+       0xABEB,
+       0xABEC,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB1E,
+       0xFB1F,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD40,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE00,
+       0xFE10,
+       0xFE12,
+       0xFE13,
+       0xFE14,
+       0xFE17,
+       0xFE19,
+       0xFE20,
+       0xFE2E,
+       0xFE31,
+       0xFE33,
+       0xFE35,
+       0xFE45,
+       0xFE47,
+       0xFE49,
+       0xFE50,
+       0xFE52,
+       0xFE53,
+       0xFE55,
+       0xFE56,
+       0xFE58,
+       0xFE59,
+       0xFE5F,
+       0xFE63,
+       0xFE64,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFEFF,
+       0xFF00,
+       0xFF01,
+       0xFF02,
+       0xFF08,
+       0xFF0A,
+       0xFF0C,
+       0xFF0E,
+       0xFF0F,
+       0xFF1A,
+       0xFF1B,
+       0xFF1F,
+       0xFF20,
+       0xFF21,
+       0xFF3B,
+       0xFF3C,
+       0xFF3D,
+       0xFF3E,
+       0xFF41,
+       0xFF5B,
+       0xFF5C,
+       0xFF5D,
+       0xFF5E,
+       0xFF5F,
+       0xFF61,
+       0xFF62,
+       0xFF64,
+       0xFF65,
+       0xFF66,
+       0xFF9E,
+       0xFFA0,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0xFFF9,
+       0xFFFC,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x101FD,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102E1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x10376,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x10428,
+       0x10450,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A01,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A10,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10A56,
+       0x10A58,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10AE7,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11003,
+       0x11038,
+       0x11047,
+       0x11049,
+       0x11066,
+       0x11070,
+       0x1107F,
+       0x11083,
+       0x110B0,
+       0x110BB,
+       0x110BD,
+       0x110BE,
+       0x110C2,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11103,
+       0x11127,
+       0x11135,
+       0x11136,
+       0x11140,
+       0x11141,
+       0x11144,
+       0x11150,
+       0x11173,
+       0x11174,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x11183,
+       0x111B3,
+       0x111C1,
+       0x111C5,
+       0x111C7,
+       0x111CD,
+       0x111CE,
+       0x111D0,
+       0x111DA,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1122C,
+       0x11238,
+       0x1123A,
+       0x1123B,
+       0x1123D,
+       0x112B0,
+       0x112DF,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x1133D,
+       0x1133E,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11362,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114B0,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115AF,
+       0x115B6,
+       0x115B8,
+       0x115C1,
+       0x115C2,
+       0x115C4,
+       0x115C9,
+       0x115CA,
+       0x11600,
+       0x11630,
+       0x11641,
+       0x11643,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116AB,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118C0,
+       0x118E0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16A6E,
+       0x16A70,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF5,
+       0x16AF6,
+       0x16B00,
+       0x16B30,
+       0x16B37,
+       0x16B39,
+       0x16B40,
+       0x16B44,
+       0x16B45,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F51,
+       0x16F7F,
+       0x16F8F,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9D,
+       0x1BC9F,
+       0x1BCA0,
+       0x1BCA4,
+       0x1D165,
+       0x1D16A,
+       0x1D16D,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1D400,
+       0x1D41A,
+       0x1D434,
+       0x1D44E,
+       0x1D455,
+       0x1D456,
+       0x1D468,
+       0x1D482,
+       0x1D49C,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4B6,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D4D0,
+       0x1D4EA,
+       0x1D504,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D538,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D56C,
+       0x1D586,
+       0x1D5A0,
+       0x1D5BA,
+       0x1D5D4,
+       0x1D5EE,
+       0x1D608,
+       0x1D622,
+       0x1D63C,
+       0x1D656,
+       0x1D670,
+       0x1D68A,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6E2,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D71C,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D756,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D790,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CA,
+       0x1D7CB,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8D0,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x1F676,
+       0x1F679,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0001,
+       0xE0002,
+       0xE0020,
+       0xE0080,
+       0xE0100,
+       0xE01F0
 };
 
-static const UV Cased_invlist[] = { /* for EBCDIC 1047 */
-       281,    /* Number of elements */
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define PL_SB_ENUM_COUNT 16
+
+typedef enum {
+       PL_SB_Other = 0,
+       PL_SB_ATerm = 1,
+       PL_SB_CR = 2,
+       PL_SB_Close = 3,
+       PL_SB_EDGE = 4,
+       PL_SB_Extend = 5,
+       PL_SB_Format = 6,
+       PL_SB_LF = 7,
+       PL_SB_Lower = 8,
+       PL_SB_Numeric = 9,
+       PL_SB_OLetter = 10,
+       PL_SB_SContinue = 11,
+       PL_SB_STerm = 12,
+       PL_SB_Sep = 13,
+       PL_SB_Sp = 14,
+       PL_SB_Upper = 15
+} PL_SB_enum;
+
+static const PL_SB_enum Sentence_Break_invmap[] = { /* for EBCDIC 1047 */
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_CR,
+       PL_SB_Other,
+       PL_SB_LF,
+       PL_SB_Other,
+       PL_SB_Sep,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_ATerm,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Close,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Close,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Upper,
+       PL_SB_Format,
+       PL_SB_Lower,
+       PL_SB_Close,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Close,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Numeric,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Sp,
+       PL_SB_OLetter,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_Format,
+       PL_SB_Extend,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_ATerm,
+       PL_SB_Other,
+       PL_SB_Sep,
+       PL_SB_Format,
+       PL_SB_Sp,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Extend,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_ATerm,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_SContinue,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_ATerm,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_STerm,
+       PL_SB_Close,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Format,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other
+};
+
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_REGCOMP_C)
+
+static const UV UpperLatin1_invlist[] = { /* for EBCDIC 1047 */
+       55,     /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       173,
-       174,
-       175,
-       186,
-       187,
-       193,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       224,
-       226,
-       234,
-       235,
-       240,
-       251,
-       255,
-       256,
-       443,
-       444,
-       448,
-       452,
-       660,
-       661,
-       697,
-       704,
-       706,
-       736,
-       741,
-       837,
-       838,
-       880,
-       884,
-       886,
-       888,
-       890,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1377,
-       1416,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       7424,
-       7616,
-       7680,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8501,
-       8505,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8576,
-       8579,
-       8581,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       42560,
-       42606,
-       42624,
-       42654,
-       42786,
-       42888,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       43000,
-       43003,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       64256,
-       64263,
-       64275,
-       64280,
-       65313,
-       65339,
-       65345,
-       65371,
-       66560,
-       66640,
-       71840,
-       71904,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370
+       0x0,
+       0x4,
+       0x5,
+       0x6,
+       0x7,
+       0x8,
+       0xB,
+       0x14,
+       0x15,
+       0x17,
+       0x18,
+       0x1A,
+       0x1C,
+       0x20,
+       0x26,
+       0x28,
+       0x2D,
+       0x30,
+       0x32,
+       0x33,
+       0x37,
+       0x38,
+       0x3C,
+       0x3E,
+       0x3F,
+       0x41,
+       0x4B,
+       0x51,
+       0x5A,
+       0x62,
+       0x6B,
+       0x70,
+       0x79,
+       0x80,
+       0x81,
+       0x8A,
+       0x91,
+       0x9A,
+       0xA1,
+       0xAA,
+       0xAD,
+       0xAE,
+       0xBD,
+       0xBE,
+       0xC0,
+       0xCA,
+       0xD0,
+       0xDA,
+       0xE0,
+       0xE1,
+       0xE2,
+       0xEA,
+       0xF0,
+       0xFA,
+       0x100
 };
 
+#endif /* defined(PERL_IN_REGCOMP_C) */
+
+#if defined(PERL_IN_PERL_C)
+
 static const UV VertSpace_invlist[] = { /* for EBCDIC 1047 */
        9,      /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       11,
-       14,
-       21,
-       22,
-       37,
-       38,
-       8232,
-       8234
+       0x0,
+       0xB,
+       0xE,
+       0x15,
+       0x16,
+       0x25,
+       0x26,
+       0x2028,
+       0x202A
 };
 
+static const UV Word_Break_invlist[] = { /* for EBCDIC 1047 */
+       1505,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       0,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0xB,
+       0xD,
+       0xE,
+       0x15,
+       0x16,
+       0x25,
+       0x26,
+       0x42,
+       0x4A,
+       0x4B,
+       0x4C,
+       0x51,
+       0x5A,
+       0x5E,
+       0x5F,
+       0x62,
+       0x6A,
+       0x6B,
+       0x6C,
+       0x6D,
+       0x6E,
+       0x70,
+       0x79,
+       0x7A,
+       0x7B,
+       0x7D,
+       0x7E,
+       0x7F,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAD,
+       0xAE,
+       0xAF,
+       0xB3,
+       0xB4,
+       0xBA,
+       0xBB,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFA,
+       0xFB,
+       0xFF,
+       0x100,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2D7,
+       0x2D8,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x300,
+       0x370,
+       0x375,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x483,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x589,
+       0x58A,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x5F4,
+       0x5F5,
+       0x600,
+       0x606,
+       0x60C,
+       0x60E,
+       0x610,
+       0x61B,
+       0x61C,
+       0x61D,
+       0x620,
+       0x64B,
+       0x660,
+       0x66A,
+       0x66B,
+       0x66C,
+       0x66D,
+       0x66E,
+       0x670,
+       0x671,
+       0x6D4,
+       0x6D5,
+       0x6D6,
+       0x6DD,
+       0x6DE,
+       0x6DF,
+       0x6E5,
+       0x6E7,
+       0x6E9,
+       0x6EA,
+       0x6EE,
+       0x6F0,
+       0x6FA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x70F,
+       0x710,
+       0x711,
+       0x712,
+       0x730,
+       0x74B,
+       0x74D,
+       0x7A6,
+       0x7B1,
+       0x7B2,
+       0x7C0,
+       0x7CA,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7F8,
+       0x7F9,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x816,
+       0x81A,
+       0x81B,
+       0x824,
+       0x825,
+       0x828,
+       0x829,
+       0x82E,
+       0x840,
+       0x859,
+       0x85C,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x904,
+       0x93A,
+       0x93D,
+       0x93E,
+       0x950,
+       0x951,
+       0x958,
+       0x962,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x981,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9BD,
+       0x9BE,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CE,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E2,
+       0x9E4,
+       0x9E6,
+       0x9F0,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA70,
+       0xA72,
+       0xA75,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xABD,
+       0xABE,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE2,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB3D,
+       0xB3E,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB62,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB83,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC3E,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC62,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCBD,
+       0xCBE,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE2,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD3E,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4E,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD62,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE31,
+       0xE32,
+       0xE34,
+       0xE3B,
+       0xE47,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xEB1,
+       0xEB2,
+       0xEB4,
+       0xEBA,
+       0xEBB,
+       0xEBD,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xF00,
+       0xF01,
+       0xF18,
+       0xF1A,
+       0xF20,
+       0xF2A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF85,
+       0xF86,
+       0xF88,
+       0xF8D,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x102B,
+       0x103F,
+       0x1040,
+       0x104A,
+       0x1056,
+       0x105A,
+       0x105E,
+       0x1061,
+       0x1062,
+       0x1065,
+       0x1067,
+       0x106E,
+       0x1071,
+       0x1075,
+       0x1082,
+       0x108E,
+       0x108F,
+       0x1090,
+       0x109A,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1712,
+       0x1715,
+       0x1720,
+       0x1732,
+       0x1735,
+       0x1740,
+       0x1752,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x17B4,
+       0x17D4,
+       0x17DD,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x180B,
+       0x180E,
+       0x180F,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18A9,
+       0x18AA,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1946,
+       0x1950,
+       0x19B0,
+       0x19C1,
+       0x19C8,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A17,
+       0x1A1C,
+       0x1A55,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A80,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B05,
+       0x1B34,
+       0x1B45,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1B83,
+       0x1BA1,
+       0x1BAE,
+       0x1BB0,
+       0x1BBA,
+       0x1BE6,
+       0x1BF4,
+       0x1C00,
+       0x1C24,
+       0x1C38,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C50,
+       0x1C5A,
+       0x1C7E,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF2,
+       0x1CF5,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DC0,
+       0x1DF6,
+       0x1DFC,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x200C,
+       0x200E,
+       0x2010,
+       0x2018,
+       0x201A,
+       0x2024,
+       0x2025,
+       0x2027,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x203F,
+       0x2041,
+       0x2044,
+       0x2045,
+       0x2054,
+       0x2055,
+       0x2060,
+       0x2065,
+       0x2066,
+       0x2070,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x20D0,
+       0x20F1,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D7F,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x3005,
+       0x3006,
+       0x302A,
+       0x3030,
+       0x3031,
+       0x3036,
+       0x303B,
+       0x303D,
+       0x3099,
+       0x309B,
+       0x309D,
+       0x30A0,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x32D0,
+       0x32FF,
+       0x3300,
+       0x3358,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA620,
+       0xA62A,
+       0xA62C,
+       0xA640,
+       0xA66F,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6A0,
+       0xA6F0,
+       0xA6F2,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA823,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA882,
+       0xA8B4,
+       0xA8C5,
+       0xA8D0,
+       0xA8DA,
+       0xA8E0,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA90A,
+       0xA926,
+       0xA92E,
+       0xA930,
+       0xA947,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA984,
+       0xA9B3,
+       0xA9C1,
+       0xA9CF,
+       0xA9D0,
+       0xA9DA,
+       0xA9E5,
+       0xA9E6,
+       0xA9F0,
+       0xA9FA,
+       0xAA00,
+       0xAA29,
+       0xAA37,
+       0xAA40,
+       0xAA43,
+       0xAA44,
+       0xAA4C,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA7B,
+       0xAA7E,
+       0xAAB0,
+       0xAAB1,
+       0xAAB2,
+       0xAAB5,
+       0xAAB7,
+       0xAAB9,
+       0xAABE,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAE0,
+       0xAAEB,
+       0xAAF0,
+       0xAAF2,
+       0xAAF5,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABE3,
+       0xABEB,
+       0xABEC,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB1E,
+       0xFB1F,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFB50,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE00,
+       0xFE10,
+       0xFE11,
+       0xFE13,
+       0xFE14,
+       0xFE15,
+       0xFE20,
+       0xFE2E,
+       0xFE33,
+       0xFE35,
+       0xFE4D,
+       0xFE50,
+       0xFE51,
+       0xFE52,
+       0xFE53,
+       0xFE54,
+       0xFE55,
+       0xFE56,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFEFF,
+       0xFF00,
+       0xFF07,
+       0xFF08,
+       0xFF0C,
+       0xFF0D,
+       0xFF0E,
+       0xFF0F,
+       0xFF1A,
+       0xFF1B,
+       0xFF1C,
+       0xFF21,
+       0xFF3B,
+       0xFF3F,
+       0xFF40,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFF9E,
+       0xFFA0,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0xFFF9,
+       0xFFFC,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x101FD,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102E1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x10376,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A01,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A10,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10AE7,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11003,
+       0x11038,
+       0x11047,
+       0x11066,
+       0x11070,
+       0x1107F,
+       0x11083,
+       0x110B0,
+       0x110BB,
+       0x110BD,
+       0x110BE,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11103,
+       0x11127,
+       0x11135,
+       0x11136,
+       0x11140,
+       0x11150,
+       0x11173,
+       0x11174,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x11183,
+       0x111B3,
+       0x111C1,
+       0x111C5,
+       0x111D0,
+       0x111DA,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1122C,
+       0x11238,
+       0x112B0,
+       0x112DF,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x1133D,
+       0x1133E,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11362,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114B0,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115AF,
+       0x115B6,
+       0x115B8,
+       0x115C1,
+       0x11600,
+       0x11630,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116AB,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118E0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF5,
+       0x16B00,
+       0x16B30,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F51,
+       0x16F7F,
+       0x16F8F,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B001,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9D,
+       0x1BC9F,
+       0x1BCA0,
+       0x1BCA4,
+       0x1D165,
+       0x1D16A,
+       0x1D16D,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8D0,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x1F1E6,
+       0x1F200,
+       0xE0001,
+       0xE0002,
+       0xE0020,
+       0xE0080,
+       0xE0100,
+       0xE01F0
+};
+
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define PL_WB_ENUM_COUNT 19
+
+typedef enum {
+       PL_WB_Other = 0,
+       PL_WB_ALetter = 1,
+       PL_WB_CR = 2,
+       PL_WB_Double_Quote = 3,
+       PL_WB_EDGE = 4,
+       PL_WB_Extend = 5,
+       PL_WB_ExtendNumLet = 6,
+       PL_WB_Format = 7,
+       PL_WB_Hebrew_Letter = 8,
+       PL_WB_Katakana = 9,
+       PL_WB_LF = 10,
+       PL_WB_MidLetter = 11,
+       PL_WB_MidNum = 12,
+       PL_WB_MidNumLet = 13,
+       PL_WB_Newline = 14,
+       PL_WB_Numeric = 15,
+       PL_WB_Regional_Indicator = 16,
+       PL_WB_Single_Quote = 17,
+       PL_WB_UNKNOWN = 18
+} PL_WB_enum;
+
+static const PL_WB_enum Word_Break_invmap[] = { /* for EBCDIC 1047 */
+       PL_WB_Other,
+       PL_WB_Newline,
+       PL_WB_CR,
+       PL_WB_Other,
+       PL_WB_LF,
+       PL_WB_Other,
+       PL_WB_Newline,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_Other,
+       PL_WB_Single_Quote,
+       PL_WB_Other,
+       PL_WB_Double_Quote,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Format,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_MidNum,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_MidLetter,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_ALetter,
+       PL_WB_MidLetter,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Numeric,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_Newline,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Extend,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_MidLetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Format,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Regional_Indicator,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other
+};
+
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_PERL_C)
+
 static const UV XPerlSpace_invlist[] = { /* for EBCDIC 1047 */
        23,     /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       5,
-       6,
-       11,
-       14,
-       21,
-       22,
-       37,
-       38,
-       64,
-       66,
-       5760,
-       5761,
-       8192,
-       8203,
-       8232,
-       8234,
-       8239,
-       8240,
-       8287,
-       8288,
-       12288,
-       12289
+       0x0,
+       0x5,
+       0x6,
+       0xB,
+       0xE,
+       0x15,
+       0x16,
+       0x25,
+       0x26,
+       0x40,
+       0x42,
+       0x1680,
+       0x1681,
+       0x2000,
+       0x200B,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x2030,
+       0x205F,
+       0x2060,
+       0x3000,
+       0x3001
 };
 
 static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 1047 */
@@ -12716,1291 +39146,1291 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 1047 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       173,
-       174,
-       175,
-       186,
-       187,
-       193,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       224,
-       226,
-       234,
-       235,
-       250,
-       251,
-       255,
-       256,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       837,
-       838,
-       880,
-       885,
-       886,
-       888,
-       890,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1456,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1480,
-       1488,
-       1515,
-       1520,
-       1523,
-       1552,
-       1563,
-       1568,
-       1624,
-       1625,
-       1642,
-       1646,
-       1748,
-       1749,
-       1757,
-       1761,
-       1769,
-       1773,
-       1789,
-       1791,
-       1792,
-       1808,
-       1856,
-       1869,
-       1970,
-       1984,
-       2027,
-       2036,
-       2038,
-       2042,
-       2043,
-       2048,
-       2072,
-       2074,
-       2093,
-       2112,
-       2137,
-       2208,
-       2227,
-       2276,
-       2282,
-       2288,
-       2364,
-       2365,
-       2381,
-       2382,
-       2385,
-       2389,
-       2404,
-       2406,
-       2416,
-       2417,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2493,
-       2501,
-       2503,
-       2505,
-       2507,
-       2509,
-       2510,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2546,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2637,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2749,
-       2758,
-       2759,
-       2762,
-       2763,
-       2765,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2800,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2877,
-       2885,
-       2887,
-       2889,
-       2891,
-       2893,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2928,
-       2929,
-       2930,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3021,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3056,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3149,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3261,
-       3269,
-       3270,
-       3273,
-       3274,
-       3277,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3405,
-       3406,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3440,
-       3450,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3572,
-       3585,
-       3643,
-       3648,
-       3655,
-       3661,
-       3662,
-       3664,
-       3674,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3789,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3841,
-       3872,
-       3882,
-       3904,
-       3912,
-       3913,
-       3949,
-       3953,
-       3970,
-       3976,
-       3992,
-       3993,
-       4029,
-       4096,
-       4151,
-       4152,
-       4153,
-       4155,
-       4170,
-       4176,
-       4195,
-       4197,
-       4201,
-       4206,
-       4231,
-       4238,
-       4239,
-       4240,
-       4250,
-       4252,
-       4254,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4959,
-       4960,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5908,
-       5920,
-       5940,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6068,
-       6070,
-       6089,
-       6103,
-       6104,
-       6108,
-       6109,
-       6112,
-       6122,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6457,
-       6470,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6618,
-       6656,
-       6684,
-       6688,
-       6751,
-       6753,
-       6773,
-       6784,
-       6794,
-       6800,
-       6810,
-       6823,
-       6824,
-       6912,
-       6964,
-       6965,
-       6980,
-       6981,
-       6988,
-       6992,
-       7002,
-       7040,
-       7082,
-       7084,
-       7142,
-       7143,
-       7154,
-       7168,
-       7222,
-       7232,
-       7242,
-       7245,
-       7294,
-       7401,
-       7405,
-       7406,
-       7412,
-       7413,
-       7415,
-       7424,
-       7616,
-       7655,
-       7669,
-       7680,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11648,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11776,
-       11823,
-       11824,
-       12293,
-       12296,
-       12321,
-       12330,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42540,
-       42560,
-       42607,
-       42612,
-       42620,
-       42623,
-       42654,
-       42655,
-       42736,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43010,
-       43011,
-       43014,
-       43015,
-       43019,
-       43020,
-       43048,
-       43072,
-       43124,
-       43136,
-       43204,
-       43216,
-       43226,
-       43250,
-       43256,
-       43259,
-       43260,
-       43264,
-       43307,
-       43312,
-       43347,
-       43360,
-       43389,
-       43392,
-       43443,
-       43444,
-       43456,
-       43471,
-       43482,
-       43488,
-       43493,
-       43494,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43616,
-       43639,
-       43642,
-       43643,
-       43646,
-       43711,
-       43712,
-       43713,
-       43714,
-       43715,
-       43739,
-       43742,
-       43744,
-       43760,
-       43762,
-       43766,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44011,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65020,
-       65136,
-       65141,
-       65142,
-       65277,
-       65296,
-       65306,
-       65313,
-       65339,
-       65345,
-       65371,
-       65382,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66176,
-       66205,
-       66208,
-       66257,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68325,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69632,
-       69702,
-       69734,
-       69744,
-       69762,
-       69817,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69939,
-       69942,
-       69952,
-       69968,
-       70003,
-       70006,
-       70007,
-       70016,
-       70080,
-       70081,
-       70085,
-       70096,
-       70107,
-       70144,
-       70162,
-       70163,
-       70197,
-       70199,
-       70200,
-       70320,
-       70377,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70461,
-       70469,
-       70471,
-       70473,
-       70475,
-       70477,
-       70487,
-       70488,
-       70493,
-       70500,
-       70784,
-       70850,
-       70852,
-       70854,
-       70855,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71103,
-       71168,
-       71231,
-       71232,
-       71233,
-       71236,
-       71237,
-       71248,
-       71258,
-       71296,
-       71350,
-       71360,
-       71370,
-       71840,
-       71914,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92880,
-       92910,
-       92928,
-       92983,
-       92992,
-       92996,
-       93008,
-       93018,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94099,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113822,
-       113823,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAD,
+       0xAE,
+       0xAF,
+       0xBA,
+       0xBB,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xFA,
+       0xFB,
+       0xFF,
+       0x100,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x345,
+       0x346,
+       0x370,
+       0x375,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x5B0,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x610,
+       0x61B,
+       0x620,
+       0x658,
+       0x659,
+       0x66A,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x6DD,
+       0x6E1,
+       0x6E9,
+       0x6ED,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x740,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x818,
+       0x81A,
+       0x82D,
+       0x840,
+       0x859,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x8EA,
+       0x8F0,
+       0x93C,
+       0x93D,
+       0x94D,
+       0x94E,
+       0x951,
+       0x955,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BD,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CD,
+       0x9CE,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4D,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABD,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACD,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3D,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4D,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCD,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4D,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBD,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCD,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4D,
+       0xD4E,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE3B,
+       0xE40,
+       0xE47,
+       0xE4D,
+       0xE4E,
+       0xE50,
+       0xE5A,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xECD,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF20,
+       0xF2A,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF82,
+       0xF88,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0x1000,
+       0x1037,
+       0x1038,
+       0x1039,
+       0x103B,
+       0x104A,
+       0x1050,
+       0x1063,
+       0x1065,
+       0x1069,
+       0x106E,
+       0x1087,
+       0x108E,
+       0x108F,
+       0x1090,
+       0x109A,
+       0x109C,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135F,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1714,
+       0x1720,
+       0x1734,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17B4,
+       0x17B6,
+       0x17C9,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DD,
+       0x17E0,
+       0x17EA,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x1939,
+       0x1946,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A1C,
+       0x1A20,
+       0x1A5F,
+       0x1A61,
+       0x1A75,
+       0x1A80,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA7,
+       0x1AA8,
+       0x1B00,
+       0x1B34,
+       0x1B35,
+       0x1B44,
+       0x1B45,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B80,
+       0x1BAA,
+       0x1BAC,
+       0x1BE6,
+       0x1BE7,
+       0x1BF2,
+       0x1C00,
+       0x1C36,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C7E,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF4,
+       0x1CF5,
+       0x1CF7,
+       0x1D00,
+       0x1DC0,
+       0x1DE7,
+       0x1DF5,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x302A,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA62C,
+       0xA640,
+       0xA66F,
+       0xA674,
+       0xA67C,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6F0,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA8C4,
+       0xA8D0,
+       0xA8DA,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA92B,
+       0xA930,
+       0xA953,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA9B3,
+       0xA9B4,
+       0xA9C0,
+       0xA9CF,
+       0xA9DA,
+       0xA9E0,
+       0xA9E5,
+       0xA9E6,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAA7B,
+       0xAA7E,
+       0xAABF,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xAAF6,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEB,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFF10,
+       0xFF1A,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11046,
+       0x11066,
+       0x11070,
+       0x11082,
+       0x110B9,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11133,
+       0x11136,
+       0x11140,
+       0x11150,
+       0x11173,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x111C0,
+       0x111C1,
+       0x111C5,
+       0x111D0,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x11235,
+       0x11237,
+       0x11238,
+       0x112B0,
+       0x112E9,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133D,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134D,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11480,
+       0x114C2,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115BF,
+       0x11600,
+       0x1163F,
+       0x11640,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B6,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16AD0,
+       0x16AEE,
+       0x16B00,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9E,
+       0x1BC9F,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E
 };
 
 static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 1047 */
@@ -14008,1233 +40438,1233 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 1047 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       173,
-       174,
-       175,
-       186,
-       187,
-       193,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       224,
-       226,
-       234,
-       235,
-       240,
-       251,
-       255,
-       256,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       837,
-       838,
-       880,
-       885,
-       886,
-       888,
-       890,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1456,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1480,
-       1488,
-       1515,
-       1520,
-       1523,
-       1552,
-       1563,
-       1568,
-       1624,
-       1625,
-       1632,
-       1646,
-       1748,
-       1749,
-       1757,
-       1761,
-       1769,
-       1773,
-       1776,
-       1786,
-       1789,
-       1791,
-       1792,
-       1808,
-       1856,
-       1869,
-       1970,
-       1994,
-       2027,
-       2036,
-       2038,
-       2042,
-       2043,
-       2048,
-       2072,
-       2074,
-       2093,
-       2112,
-       2137,
-       2208,
-       2227,
-       2276,
-       2282,
-       2288,
-       2364,
-       2365,
-       2381,
-       2382,
-       2385,
-       2389,
-       2404,
-       2417,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2493,
-       2501,
-       2503,
-       2505,
-       2507,
-       2509,
-       2510,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2544,
-       2546,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2637,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2672,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2749,
-       2758,
-       2759,
-       2762,
-       2763,
-       2765,
-       2768,
-       2769,
-       2784,
-       2788,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2877,
-       2885,
-       2887,
-       2889,
-       2891,
-       2893,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2929,
-       2930,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3021,
-       3024,
-       3025,
-       3031,
-       3032,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3149,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3261,
-       3269,
-       3270,
-       3273,
-       3274,
-       3277,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3405,
-       3406,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3450,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3570,
-       3572,
-       3585,
-       3643,
-       3648,
-       3655,
-       3661,
-       3662,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3789,
-       3790,
-       3804,
-       3808,
-       3840,
-       3841,
-       3904,
-       3912,
-       3913,
-       3949,
-       3953,
-       3970,
-       3976,
-       3992,
-       3993,
-       4029,
-       4096,
-       4151,
-       4152,
-       4153,
-       4155,
-       4160,
-       4176,
-       4195,
-       4197,
-       4201,
-       4206,
-       4231,
-       4238,
-       4239,
-       4252,
-       4254,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4959,
-       4960,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5908,
-       5920,
-       5940,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6068,
-       6070,
-       6089,
-       6103,
-       6104,
-       6108,
-       6109,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6457,
-       6480,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6656,
-       6684,
-       6688,
-       6751,
-       6753,
-       6773,
-       6823,
-       6824,
-       6912,
-       6964,
-       6965,
-       6980,
-       6981,
-       6988,
-       7040,
-       7082,
-       7084,
-       7088,
-       7098,
-       7142,
-       7143,
-       7154,
-       7168,
-       7222,
-       7245,
-       7248,
-       7258,
-       7294,
-       7401,
-       7405,
-       7406,
-       7412,
-       7413,
-       7415,
-       7424,
-       7616,
-       7655,
-       7669,
-       7680,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11648,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11776,
-       11823,
-       11824,
-       12293,
-       12296,
-       12321,
-       12330,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42528,
-       42538,
-       42540,
-       42560,
-       42607,
-       42612,
-       42620,
-       42623,
-       42654,
-       42655,
-       42736,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43010,
-       43011,
-       43014,
-       43015,
-       43019,
-       43020,
-       43048,
-       43072,
-       43124,
-       43136,
-       43204,
-       43250,
-       43256,
-       43259,
-       43260,
-       43274,
-       43307,
-       43312,
-       43347,
-       43360,
-       43389,
-       43392,
-       43443,
-       43444,
-       43456,
-       43471,
-       43472,
-       43488,
-       43493,
-       43494,
-       43504,
-       43514,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43616,
-       43639,
-       43642,
-       43643,
-       43646,
-       43711,
-       43712,
-       43713,
-       43714,
-       43715,
-       43739,
-       43742,
-       43744,
-       43760,
-       43762,
-       43766,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44011,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65020,
-       65136,
-       65141,
-       65142,
-       65277,
-       65313,
-       65339,
-       65345,
-       65371,
-       65382,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66176,
-       66205,
-       66208,
-       66257,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68325,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69632,
-       69702,
-       69762,
-       69817,
-       69840,
-       69865,
-       69888,
-       69939,
-       69968,
-       70003,
-       70006,
-       70007,
-       70016,
-       70080,
-       70081,
-       70085,
-       70106,
-       70107,
-       70144,
-       70162,
-       70163,
-       70197,
-       70199,
-       70200,
-       70320,
-       70377,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70461,
-       70469,
-       70471,
-       70473,
-       70475,
-       70477,
-       70487,
-       70488,
-       70493,
-       70500,
-       70784,
-       70850,
-       70852,
-       70854,
-       70855,
-       70856,
-       71040,
-       71094,
-       71096,
-       71103,
-       71168,
-       71231,
-       71232,
-       71233,
-       71236,
-       71237,
-       71296,
-       71350,
-       71840,
-       71904,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92880,
-       92910,
-       92928,
-       92983,
-       92992,
-       92996,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94099,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113822,
-       113823,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       124928,
-       125125,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAD,
+       0xAE,
+       0xAF,
+       0xBA,
+       0xBB,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFB,
+       0xFF,
+       0x100,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x345,
+       0x346,
+       0x370,
+       0x375,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x5B0,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x610,
+       0x61B,
+       0x620,
+       0x658,
+       0x659,
+       0x660,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x6DD,
+       0x6E1,
+       0x6E9,
+       0x6ED,
+       0x6F0,
+       0x6FA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x740,
+       0x74D,
+       0x7B2,
+       0x7CA,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x818,
+       0x81A,
+       0x82D,
+       0x840,
+       0x859,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x8EA,
+       0x8F0,
+       0x93C,
+       0x93D,
+       0x94D,
+       0x94E,
+       0x951,
+       0x955,
+       0x964,
+       0x971,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BD,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CD,
+       0x9CE,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9F0,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4D,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA70,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABD,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACD,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3D,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4D,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCD,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4D,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBD,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCD,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4D,
+       0xD4E,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE3B,
+       0xE40,
+       0xE47,
+       0xE4D,
+       0xE4E,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xECD,
+       0xECE,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF82,
+       0xF88,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0x1000,
+       0x1037,
+       0x1038,
+       0x1039,
+       0x103B,
+       0x1040,
+       0x1050,
+       0x1063,
+       0x1065,
+       0x1069,
+       0x106E,
+       0x1087,
+       0x108E,
+       0x108F,
+       0x109C,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135F,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1714,
+       0x1720,
+       0x1734,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17B4,
+       0x17B6,
+       0x17C9,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DD,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x1939,
+       0x1950,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x1A00,
+       0x1A1C,
+       0x1A20,
+       0x1A5F,
+       0x1A61,
+       0x1A75,
+       0x1AA7,
+       0x1AA8,
+       0x1B00,
+       0x1B34,
+       0x1B35,
+       0x1B44,
+       0x1B45,
+       0x1B4C,
+       0x1B80,
+       0x1BAA,
+       0x1BAC,
+       0x1BB0,
+       0x1BBA,
+       0x1BE6,
+       0x1BE7,
+       0x1BF2,
+       0x1C00,
+       0x1C36,
+       0x1C4D,
+       0x1C50,
+       0x1C5A,
+       0x1C7E,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF4,
+       0x1CF5,
+       0x1CF7,
+       0x1D00,
+       0x1DC0,
+       0x1DE7,
+       0x1DF5,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x302A,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA620,
+       0xA62A,
+       0xA62C,
+       0xA640,
+       0xA66F,
+       0xA674,
+       0xA67C,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6F0,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA8C4,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA90A,
+       0xA92B,
+       0xA930,
+       0xA953,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA9B3,
+       0xA9B4,
+       0xA9C0,
+       0xA9CF,
+       0xA9D0,
+       0xA9E0,
+       0xA9E5,
+       0xA9E6,
+       0xA9F0,
+       0xA9FA,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAA7B,
+       0xAA7E,
+       0xAABF,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xAAF6,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEB,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11046,
+       0x11082,
+       0x110B9,
+       0x110D0,
+       0x110E9,
+       0x11100,
+       0x11133,
+       0x11150,
+       0x11173,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x111C0,
+       0x111C1,
+       0x111C5,
+       0x111DA,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x11235,
+       0x11237,
+       0x11238,
+       0x112B0,
+       0x112E9,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133D,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134D,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11480,
+       0x114C2,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115BF,
+       0x11600,
+       0x1163F,
+       0x11640,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11680,
+       0x116B6,
+       0x118A0,
+       0x118E0,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16AD0,
+       0x16AEE,
+       0x16B00,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9E,
+       0x1BC9F,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1E800,
+       0x1E8C5,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E
 };
 
 static const UV XPosixBlank_invlist[] = { /* for EBCDIC 1047 */
@@ -15242,21 +41672,21 @@ static const UV XPosixBlank_invlist[] = { /* for EBCDIC 1047 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       5,
-       6,
-       64,
-       66,
-       5760,
-       5761,
-       8192,
-       8203,
-       8239,
-       8240,
-       8287,
-       8288,
-       12288,
-       12289
+       0x0,
+       0x5,
+       0x6,
+       0x40,
+       0x42,
+       0x1680,
+       0x1681,
+       0x2000,
+       0x200B,
+       0x202F,
+       0x2030,
+       0x205F,
+       0x2060,
+       0x3000,
+       0x3001
 };
 
 static const UV XPosixCntrl_invlist[] = { /* for EBCDIC 1047 */
@@ -15264,10 +41694,10 @@ static const UV XPosixCntrl_invlist[] = { /* for EBCDIC 1047 */
        148565664, /* Version and data structure type */
        0,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       64,
-       255,
-       256
+       0x0,
+       0x40,
+       0xFF,
+       0x100
 };
 
 static const UV XPosixDigit_invlist[] = { /* for EBCDIC 1047 */
@@ -15275,107 +41705,107 @@ static const UV XPosixDigit_invlist[] = { /* for EBCDIC 1047 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       240,
-       250,
-       1632,
-       1642,
-       1776,
-       1786,
-       1984,
-       1994,
-       2406,
-       2416,
-       2534,
-       2544,
-       2662,
-       2672,
-       2790,
-       2800,
-       2918,
-       2928,
-       3046,
-       3056,
-       3174,
-       3184,
-       3302,
-       3312,
-       3430,
-       3440,
-       3558,
-       3568,
-       3664,
-       3674,
-       3792,
-       3802,
-       3872,
-       3882,
-       4160,
-       4170,
-       4240,
-       4250,
-       6112,
-       6122,
-       6160,
-       6170,
-       6470,
-       6480,
-       6608,
-       6618,
-       6784,
-       6794,
-       6800,
-       6810,
-       6992,
-       7002,
-       7088,
-       7098,
-       7232,
-       7242,
-       7248,
-       7258,
-       42528,
-       42538,
-       43216,
-       43226,
-       43264,
-       43274,
-       43472,
-       43482,
-       43504,
-       43514,
-       43600,
-       43610,
-       44016,
-       44026,
-       65296,
-       65306,
-       66720,
-       66730,
-       69734,
-       69744,
-       69872,
-       69882,
-       69942,
-       69952,
-       70096,
-       70106,
-       70384,
-       70394,
-       70864,
-       70874,
-       71248,
-       71258,
-       71360,
-       71370,
-       71904,
-       71914,
-       92768,
-       92778,
-       93008,
-       93018,
-       120782,
-       120832
+       0x0,
+       0xF0,
+       0xFA,
+       0x660,
+       0x66A,
+       0x6F0,
+       0x6FA,
+       0x7C0,
+       0x7CA,
+       0x966,
+       0x970,
+       0x9E6,
+       0x9F0,
+       0xA66,
+       0xA70,
+       0xAE6,
+       0xAF0,
+       0xB66,
+       0xB70,
+       0xBE6,
+       0xBF0,
+       0xC66,
+       0xC70,
+       0xCE6,
+       0xCF0,
+       0xD66,
+       0xD70,
+       0xDE6,
+       0xDF0,
+       0xE50,
+       0xE5A,
+       0xED0,
+       0xEDA,
+       0xF20,
+       0xF2A,
+       0x1040,
+       0x104A,
+       0x1090,
+       0x109A,
+       0x17E0,
+       0x17EA,
+       0x1810,
+       0x181A,
+       0x1946,
+       0x1950,
+       0x19D0,
+       0x19DA,
+       0x1A80,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1B50,
+       0x1B5A,
+       0x1BB0,
+       0x1BBA,
+       0x1C40,
+       0x1C4A,
+       0x1C50,
+       0x1C5A,
+       0xA620,
+       0xA62A,
+       0xA8D0,
+       0xA8DA,
+       0xA900,
+       0xA90A,
+       0xA9D0,
+       0xA9DA,
+       0xA9F0,
+       0xA9FA,
+       0xAA50,
+       0xAA5A,
+       0xABF0,
+       0xABFA,
+       0xFF10,
+       0xFF1A,
+       0x104A0,
+       0x104AA,
+       0x11066,
+       0x11070,
+       0x110F0,
+       0x110FA,
+       0x11136,
+       0x11140,
+       0x111D0,
+       0x111DA,
+       0x112F0,
+       0x112FA,
+       0x114D0,
+       0x114DA,
+       0x11650,
+       0x1165A,
+       0x116C0,
+       0x116CA,
+       0x118E0,
+       0x118EA,
+       0x16A60,
+       0x16A6A,
+       0x16B50,
+       0x16B5A,
+       0x1D7CE,
+       0x1D800
 };
 
 static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
@@ -15383,1217 +41813,1217 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       255,
-       256,
-       888,
-       890,
-       896,
-       900,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1328,
-       1329,
-       1367,
-       1369,
-       1376,
-       1377,
-       1416,
-       1417,
-       1419,
-       1421,
-       1424,
-       1425,
-       1480,
-       1488,
-       1515,
-       1520,
-       1525,
-       1536,
-       1565,
-       1566,
-       1806,
-       1807,
-       1867,
-       1869,
-       1970,
-       1984,
-       2043,
-       2048,
-       2094,
-       2096,
-       2111,
-       2112,
-       2140,
-       2142,
-       2143,
-       2208,
-       2227,
-       2276,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2492,
-       2501,
-       2503,
-       2505,
-       2507,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2556,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2620,
-       2621,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2638,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2748,
-       2758,
-       2759,
-       2762,
-       2763,
-       2766,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2802,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2876,
-       2885,
-       2887,
-       2889,
-       2891,
-       2894,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2936,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3022,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3067,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3150,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3192,
-       3200,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3260,
-       3269,
-       3270,
-       3273,
-       3274,
-       3278,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3446,
-       3449,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3530,
-       3531,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3573,
-       3585,
-       3643,
-       3647,
-       3676,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3784,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3912,
-       3913,
-       3949,
-       3953,
-       3992,
-       3993,
-       4029,
-       4030,
-       4045,
-       4046,
-       4059,
-       4096,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4957,
-       4989,
-       4992,
-       5018,
-       5024,
-       5109,
-       5120,
-       5760,
-       5761,
-       5789,
-       5792,
-       5881,
-       5888,
-       5901,
-       5902,
-       5909,
-       5920,
-       5943,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6110,
-       6112,
-       6122,
-       6128,
-       6138,
-       6144,
-       6159,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6460,
-       6464,
-       6465,
-       6468,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6619,
-       6622,
-       6684,
-       6686,
-       6751,
-       6752,
-       6781,
-       6783,
-       6794,
-       6800,
-       6810,
-       6816,
-       6830,
-       6832,
-       6847,
-       6912,
-       6988,
-       6992,
-       7037,
-       7040,
-       7156,
-       7164,
-       7224,
-       7227,
-       7242,
-       7245,
-       7296,
-       7360,
-       7368,
-       7376,
-       7415,
-       7416,
-       7418,
-       7424,
-       7670,
-       7676,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8133,
-       8134,
-       8148,
-       8150,
-       8156,
-       8157,
-       8176,
-       8178,
-       8181,
-       8182,
-       8191,
-       8203,
-       8232,
-       8234,
-       8239,
-       8240,
-       8287,
-       8288,
-       8293,
-       8294,
-       8306,
-       8308,
-       8335,
-       8336,
-       8349,
-       8352,
-       8382,
-       8400,
-       8433,
-       8448,
-       8586,
-       8592,
-       9211,
-       9216,
-       9255,
-       9280,
-       9291,
-       9312,
-       11124,
-       11126,
-       11158,
-       11160,
-       11194,
-       11197,
-       11209,
-       11210,
-       11218,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11508,
-       11513,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11633,
-       11647,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11843,
-       11904,
-       11930,
-       11931,
-       12020,
-       12032,
-       12246,
-       12272,
-       12284,
-       12289,
-       12352,
-       12353,
-       12439,
-       12441,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12688,
-       12731,
-       12736,
-       12772,
-       12784,
-       12831,
-       12832,
-       13055,
-       13056,
-       19894,
-       19904,
-       40909,
-       40960,
-       42125,
-       42128,
-       42183,
-       42192,
-       42540,
-       42560,
-       42654,
-       42655,
-       42744,
-       42752,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43052,
-       43056,
-       43066,
-       43072,
-       43128,
-       43136,
-       43205,
-       43214,
-       43226,
-       43232,
-       43260,
-       43264,
-       43348,
-       43359,
-       43389,
-       43392,
-       43470,
-       43471,
-       43482,
-       43486,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43612,
-       43715,
-       43739,
-       43767,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43872,
-       43876,
-       43878,
-       43968,
-       44014,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       57344,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64450,
-       64467,
-       64832,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65022,
-       65024,
-       65050,
-       65056,
-       65070,
-       65072,
-       65107,
-       65108,
-       65127,
-       65128,
-       65132,
-       65136,
-       65141,
-       65142,
-       65277,
-       65279,
-       65280,
-       65281,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65504,
-       65511,
-       65512,
-       65519,
-       65529,
-       65534,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65792,
-       65795,
-       65799,
-       65844,
-       65847,
-       65933,
-       65936,
-       65948,
-       65952,
-       65953,
-       66000,
-       66046,
-       66176,
-       66205,
-       66208,
-       66257,
-       66272,
-       66300,
-       66304,
-       66340,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66463,
-       66500,
-       66504,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       66927,
-       66928,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67671,
-       67743,
-       67751,
-       67760,
-       67840,
-       67868,
-       67871,
-       67898,
-       67903,
-       67904,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68152,
-       68155,
-       68159,
-       68168,
-       68176,
-       68185,
-       68192,
-       68256,
-       68288,
-       68327,
-       68331,
-       68343,
-       68352,
-       68406,
-       68409,
-       68438,
-       68440,
-       68467,
-       68472,
-       68498,
-       68505,
-       68509,
-       68521,
-       68528,
-       68608,
-       68681,
-       69216,
-       69247,
-       69632,
-       69710,
-       69714,
-       69744,
-       69759,
-       69826,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69941,
-       69942,
-       69956,
-       69968,
-       70007,
-       70016,
-       70089,
-       70093,
-       70094,
-       70096,
-       70107,
-       70113,
-       70133,
-       70144,
-       70162,
-       70163,
-       70206,
-       70320,
-       70379,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70460,
-       70469,
-       70471,
-       70473,
-       70475,
-       70478,
-       70487,
-       70488,
-       70493,
-       70500,
-       70502,
-       70509,
-       70512,
-       70517,
-       70784,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71114,
-       71168,
-       71237,
-       71248,
-       71258,
-       71296,
-       71352,
-       71360,
-       71370,
-       71840,
-       71923,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       74864,
-       74869,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92782,
-       92784,
-       92880,
-       92910,
-       92912,
-       92918,
-       92928,
-       92998,
-       93008,
-       93018,
-       93019,
-       93026,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94095,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113820,
-       113828,
-       118784,
-       119030,
-       119040,
-       119079,
-       119081,
-       119262,
-       119296,
-       119366,
-       119552,
-       119639,
-       119648,
-       119666,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       125127,
-       125143,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       126704,
-       126706,
-       126976,
-       127020,
-       127024,
-       127124,
-       127136,
-       127151,
-       127153,
-       127168,
-       127169,
-       127184,
-       127185,
-       127222,
-       127232,
-       127245,
-       127248,
-       127279,
-       127280,
-       127340,
-       127344,
-       127387,
-       127462,
-       127491,
-       127504,
-       127547,
-       127552,
-       127561,
-       127568,
-       127570,
-       127744,
-       127789,
-       127792,
-       127870,
-       127872,
-       127951,
-       127956,
-       127992,
-       128000,
-       128255,
-       128256,
-       128331,
-       128336,
-       128378,
-       128379,
-       128420,
-       128421,
-       128579,
-       128581,
-       128720,
-       128736,
-       128749,
-       128752,
-       128756,
-       128768,
-       128884,
-       128896,
-       128981,
-       129024,
-       129036,
-       129040,
-       129096,
-       129104,
-       129114,
-       129120,
-       129160,
-       129168,
-       129198,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102,
-       917505,
-       917506,
-       917536,
-       917632,
-       917760,
-       918000,
-       983040,
-       1048574,
-       1048576,
-       1114110
+       0x0,
+       0x42,
+       0xFF,
+       0x100,
+       0x378,
+       0x37A,
+       0x380,
+       0x384,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x560,
+       0x561,
+       0x588,
+       0x589,
+       0x58B,
+       0x58D,
+       0x590,
+       0x591,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F5,
+       0x600,
+       0x61D,
+       0x61E,
+       0x70E,
+       0x70F,
+       0x74B,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7FB,
+       0x800,
+       0x82E,
+       0x830,
+       0x83F,
+       0x840,
+       0x85C,
+       0x85E,
+       0x85F,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9FC,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF2,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB78,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBFB,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC78,
+       0xC80,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD76,
+       0xD79,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF5,
+       0xE01,
+       0xE3B,
+       0xE3F,
+       0xE5C,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFBE,
+       0xFCD,
+       0xFCE,
+       0xFDB,
+       0x1000,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x137D,
+       0x1380,
+       0x139A,
+       0x13A0,
+       0x13F5,
+       0x1400,
+       0x1680,
+       0x1681,
+       0x169D,
+       0x16A0,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1715,
+       0x1720,
+       0x1737,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x17F0,
+       0x17FA,
+       0x1800,
+       0x180F,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1940,
+       0x1941,
+       0x1944,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DB,
+       0x19DE,
+       0x1A1C,
+       0x1A1E,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA0,
+       0x1AAE,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B4C,
+       0x1B50,
+       0x1B7D,
+       0x1B80,
+       0x1BF4,
+       0x1BFC,
+       0x1C38,
+       0x1C3B,
+       0x1C4A,
+       0x1C4D,
+       0x1C80,
+       0x1CC0,
+       0x1CC8,
+       0x1CD0,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DF6,
+       0x1DFC,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FC5,
+       0x1FC6,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FDD,
+       0x1FF0,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFF,
+       0x200B,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x2030,
+       0x205F,
+       0x2060,
+       0x2065,
+       0x2066,
+       0x2072,
+       0x2074,
+       0x208F,
+       0x2090,
+       0x209D,
+       0x20A0,
+       0x20BE,
+       0x20D0,
+       0x20F1,
+       0x2100,
+       0x218A,
+       0x2190,
+       0x23FB,
+       0x2400,
+       0x2427,
+       0x2440,
+       0x244B,
+       0x2460,
+       0x2B74,
+       0x2B76,
+       0x2B96,
+       0x2B98,
+       0x2BBA,
+       0x2BBD,
+       0x2BC9,
+       0x2BCA,
+       0x2BD2,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CF4,
+       0x2CF9,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D71,
+       0x2D7F,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E43,
+       0x2E80,
+       0x2E9A,
+       0x2E9B,
+       0x2EF4,
+       0x2F00,
+       0x2FD6,
+       0x2FF0,
+       0x2FFC,
+       0x3001,
+       0x3040,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x3190,
+       0x31BB,
+       0x31C0,
+       0x31E4,
+       0x31F0,
+       0x321F,
+       0x3220,
+       0x32FF,
+       0x3300,
+       0x4DB6,
+       0x4DC0,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA490,
+       0xA4C7,
+       0xA4D0,
+       0xA62C,
+       0xA640,
+       0xA69E,
+       0xA69F,
+       0xA6F8,
+       0xA700,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA82C,
+       0xA830,
+       0xA83A,
+       0xA840,
+       0xA878,
+       0xA880,
+       0xA8C5,
+       0xA8CE,
+       0xA8DA,
+       0xA8E0,
+       0xA8FC,
+       0xA900,
+       0xA954,
+       0xA95F,
+       0xA97D,
+       0xA980,
+       0xA9CE,
+       0xA9CF,
+       0xA9DA,
+       0xA9DE,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA5C,
+       0xAAC3,
+       0xAADB,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xE000,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBC2,
+       0xFBD3,
+       0xFD40,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFE,
+       0xFE00,
+       0xFE1A,
+       0xFE20,
+       0xFE2E,
+       0xFE30,
+       0xFE53,
+       0xFE54,
+       0xFE67,
+       0xFE68,
+       0xFE6C,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFEFF,
+       0xFF00,
+       0xFF01,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0xFFE0,
+       0xFFE7,
+       0xFFE8,
+       0xFFEF,
+       0xFFF9,
+       0xFFFE,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10100,
+       0x10103,
+       0x10107,
+       0x10134,
+       0x10137,
+       0x1018D,
+       0x10190,
+       0x1019C,
+       0x101A0,
+       0x101A1,
+       0x101D0,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102FC,
+       0x10300,
+       0x10324,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x1039F,
+       0x103C4,
+       0x103C8,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x1056F,
+       0x10570,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10857,
+       0x1089F,
+       0x108A7,
+       0x108B0,
+       0x10900,
+       0x1091C,
+       0x1091F,
+       0x1093A,
+       0x1093F,
+       0x10940,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A48,
+       0x10A50,
+       0x10A59,
+       0x10A60,
+       0x10AA0,
+       0x10AC0,
+       0x10AE7,
+       0x10AEB,
+       0x10AF7,
+       0x10B00,
+       0x10B36,
+       0x10B39,
+       0x10B56,
+       0x10B58,
+       0x10B73,
+       0x10B78,
+       0x10B92,
+       0x10B99,
+       0x10B9D,
+       0x10BA9,
+       0x10BB0,
+       0x10C00,
+       0x10C49,
+       0x10E60,
+       0x10E7F,
+       0x11000,
+       0x1104E,
+       0x11052,
+       0x11070,
+       0x1107F,
+       0x110C2,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11135,
+       0x11136,
+       0x11144,
+       0x11150,
+       0x11177,
+       0x11180,
+       0x111C9,
+       0x111CD,
+       0x111CE,
+       0x111D0,
+       0x111DB,
+       0x111E1,
+       0x111F5,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1123E,
+       0x112B0,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115CA,
+       0x11600,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118F3,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x12470,
+       0x12475,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16A6E,
+       0x16A70,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF6,
+       0x16B00,
+       0x16B46,
+       0x16B50,
+       0x16B5A,
+       0x16B5B,
+       0x16B62,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F8F,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9C,
+       0x1BCA4,
+       0x1D000,
+       0x1D0F6,
+       0x1D100,
+       0x1D127,
+       0x1D129,
+       0x1D1DE,
+       0x1D200,
+       0x1D246,
+       0x1D300,
+       0x1D357,
+       0x1D360,
+       0x1D372,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8C7,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1EEF0,
+       0x1EEF2,
+       0x1F000,
+       0x1F02C,
+       0x1F030,
+       0x1F094,
+       0x1F0A0,
+       0x1F0AF,
+       0x1F0B1,
+       0x1F0C0,
+       0x1F0C1,
+       0x1F0D0,
+       0x1F0D1,
+       0x1F0F6,
+       0x1F100,
+       0x1F10D,
+       0x1F110,
+       0x1F12F,
+       0x1F130,
+       0x1F16C,
+       0x1F170,
+       0x1F19B,
+       0x1F1E6,
+       0x1F203,
+       0x1F210,
+       0x1F23B,
+       0x1F240,
+       0x1F249,
+       0x1F250,
+       0x1F252,
+       0x1F300,
+       0x1F32D,
+       0x1F330,
+       0x1F37E,
+       0x1F380,
+       0x1F3CF,
+       0x1F3D4,
+       0x1F3F8,
+       0x1F400,
+       0x1F4FF,
+       0x1F500,
+       0x1F54B,
+       0x1F550,
+       0x1F57A,
+       0x1F57B,
+       0x1F5A4,
+       0x1F5A5,
+       0x1F643,
+       0x1F645,
+       0x1F6D0,
+       0x1F6E0,
+       0x1F6ED,
+       0x1F6F0,
+       0x1F6F4,
+       0x1F700,
+       0x1F774,
+       0x1F780,
+       0x1F7D5,
+       0x1F800,
+       0x1F80C,
+       0x1F810,
+       0x1F848,
+       0x1F850,
+       0x1F85A,
+       0x1F860,
+       0x1F888,
+       0x1F890,
+       0x1F8AE,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0001,
+       0xE0002,
+       0xE0020,
+       0xE0080,
+       0xE0100,
+       0xE01F0,
+       0xF0000,
+       0xFFFFE,
+       0x100000,
+       0x10FFFE
 };
 
 static const UV XPosixLower_invlist[] = { /* for EBCDIC 1047 */
@@ -16601,1281 +43031,1281 @@ static const UV XPosixLower_invlist[] = { /* for EBCDIC 1047 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       112,
-       113,
-       129,
-       138,
-       140,
-       143,
-       145,
-       157,
-       160,
-       161,
-       162,
-       170,
-       203,
-       208,
-       219,
-       224,
-       257,
-       258,
-       259,
-       260,
-       261,
-       262,
-       263,
-       264,
-       265,
-       266,
-       267,
-       268,
-       269,
-       270,
-       271,
-       272,
-       273,
-       274,
-       275,
-       276,
-       277,
-       278,
-       279,
-       280,
-       281,
-       282,
-       283,
-       284,
-       285,
-       286,
-       287,
-       288,
-       289,
-       290,
-       291,
-       292,
-       293,
-       294,
-       295,
-       296,
-       297,
-       298,
-       299,
-       300,
-       301,
-       302,
-       303,
-       304,
-       305,
-       306,
-       307,
-       308,
-       309,
-       310,
-       311,
-       313,
-       314,
-       315,
-       316,
-       317,
-       318,
-       319,
-       320,
-       321,
-       322,
-       323,
-       324,
-       325,
-       326,
-       327,
-       328,
-       330,
-       331,
-       332,
-       333,
-       334,
-       335,
-       336,
-       337,
-       338,
-       339,
-       340,
-       341,
-       342,
-       343,
-       344,
-       345,
-       346,
-       347,
-       348,
-       349,
-       350,
-       351,
-       352,
-       353,
-       354,
-       355,
-       356,
-       357,
-       358,
-       359,
-       360,
-       361,
-       362,
-       363,
-       364,
-       365,
-       366,
-       367,
-       368,
-       369,
-       370,
-       371,
-       372,
-       373,
-       374,
-       375,
-       376,
-       378,
-       379,
-       380,
-       381,
-       382,
-       385,
-       387,
-       388,
-       389,
-       390,
-       392,
-       393,
-       396,
-       398,
-       402,
-       403,
-       405,
-       406,
-       409,
-       412,
-       414,
-       415,
-       417,
-       418,
-       419,
-       420,
-       421,
-       422,
-       424,
-       425,
-       426,
-       428,
-       429,
-       430,
-       432,
-       433,
-       436,
-       437,
-       438,
-       439,
-       441,
-       443,
-       445,
-       448,
-       454,
-       455,
-       457,
-       458,
-       460,
-       461,
-       462,
-       463,
-       464,
-       465,
-       466,
-       467,
-       468,
-       469,
-       470,
-       471,
-       472,
-       473,
-       474,
-       475,
-       476,
-       478,
-       479,
-       480,
-       481,
-       482,
-       483,
-       484,
-       485,
-       486,
-       487,
-       488,
-       489,
-       490,
-       491,
-       492,
-       493,
-       494,
-       495,
-       497,
-       499,
-       500,
-       501,
-       502,
-       505,
-       506,
-       507,
-       508,
-       509,
-       510,
-       511,
-       512,
-       513,
-       514,
-       515,
-       516,
-       517,
-       518,
-       519,
-       520,
-       521,
-       522,
-       523,
-       524,
-       525,
-       526,
-       527,
-       528,
-       529,
-       530,
-       531,
-       532,
-       533,
-       534,
-       535,
-       536,
-       537,
-       538,
-       539,
-       540,
-       541,
-       542,
-       543,
-       544,
-       545,
-       546,
-       547,
-       548,
-       549,
-       550,
-       551,
-       552,
-       553,
-       554,
-       555,
-       556,
-       557,
-       558,
-       559,
-       560,
-       561,
-       562,
-       563,
-       570,
-       572,
-       573,
-       575,
-       577,
-       578,
-       579,
-       583,
-       584,
-       585,
-       586,
-       587,
-       588,
-       589,
-       590,
-       591,
-       660,
-       661,
-       697,
-       704,
-       706,
-       736,
-       741,
-       837,
-       838,
-       881,
-       882,
-       883,
-       884,
-       887,
-       888,
-       890,
-       894,
-       912,
-       913,
-       940,
-       975,
-       976,
-       978,
-       981,
-       984,
-       985,
-       986,
-       987,
-       988,
-       989,
-       990,
-       991,
-       992,
-       993,
-       994,
-       995,
-       996,
-       997,
-       998,
-       999,
-       1000,
-       1001,
-       1002,
-       1003,
-       1004,
-       1005,
-       1006,
-       1007,
-       1012,
-       1013,
-       1014,
-       1016,
-       1017,
-       1019,
-       1021,
-       1072,
-       1120,
-       1121,
-       1122,
-       1123,
-       1124,
-       1125,
-       1126,
-       1127,
-       1128,
-       1129,
-       1130,
-       1131,
-       1132,
-       1133,
-       1134,
-       1135,
-       1136,
-       1137,
-       1138,
-       1139,
-       1140,
-       1141,
-       1142,
-       1143,
-       1144,
-       1145,
-       1146,
-       1147,
-       1148,
-       1149,
-       1150,
-       1151,
-       1152,
-       1153,
-       1154,
-       1163,
-       1164,
-       1165,
-       1166,
-       1167,
-       1168,
-       1169,
-       1170,
-       1171,
-       1172,
-       1173,
-       1174,
-       1175,
-       1176,
-       1177,
-       1178,
-       1179,
-       1180,
-       1181,
-       1182,
-       1183,
-       1184,
-       1185,
-       1186,
-       1187,
-       1188,
-       1189,
-       1190,
-       1191,
-       1192,
-       1193,
-       1194,
-       1195,
-       1196,
-       1197,
-       1198,
-       1199,
-       1200,
-       1201,
-       1202,
-       1203,
-       1204,
-       1205,
-       1206,
-       1207,
-       1208,
-       1209,
-       1210,
-       1211,
-       1212,
-       1213,
-       1214,
-       1215,
-       1216,
-       1218,
-       1219,
-       1220,
-       1221,
-       1222,
-       1223,
-       1224,
-       1225,
-       1226,
-       1227,
-       1228,
-       1229,
-       1230,
-       1232,
-       1233,
-       1234,
-       1235,
-       1236,
-       1237,
-       1238,
-       1239,
-       1240,
-       1241,
-       1242,
-       1243,
-       1244,
-       1245,
-       1246,
-       1247,
-       1248,
-       1249,
-       1250,
-       1251,
-       1252,
-       1253,
-       1254,
-       1255,
-       1256,
-       1257,
-       1258,
-       1259,
-       1260,
-       1261,
-       1262,
-       1263,
-       1264,
-       1265,
-       1266,
-       1267,
-       1268,
-       1269,
-       1270,
-       1271,
-       1272,
-       1273,
-       1274,
-       1275,
-       1276,
-       1277,
-       1278,
-       1279,
-       1280,
-       1281,
-       1282,
-       1283,
-       1284,
-       1285,
-       1286,
-       1287,
-       1288,
-       1289,
-       1290,
-       1291,
-       1292,
-       1293,
-       1294,
-       1295,
-       1296,
-       1297,
-       1298,
-       1299,
-       1300,
-       1301,
-       1302,
-       1303,
-       1304,
-       1305,
-       1306,
-       1307,
-       1308,
-       1309,
-       1310,
-       1311,
-       1312,
-       1313,
-       1314,
-       1315,
-       1316,
-       1317,
-       1318,
-       1319,
-       1320,
-       1321,
-       1322,
-       1323,
-       1324,
-       1325,
-       1326,
-       1327,
-       1328,
-       1377,
-       1416,
-       7424,
-       7616,
-       7681,
-       7682,
-       7683,
-       7684,
-       7685,
-       7686,
-       7687,
-       7688,
-       7689,
-       7690,
-       7691,
-       7692,
-       7693,
-       7694,
-       7695,
-       7696,
-       7697,
-       7698,
-       7699,
-       7700,
-       7701,
-       7702,
-       7703,
-       7704,
-       7705,
-       7706,
-       7707,
-       7708,
-       7709,
-       7710,
-       7711,
-       7712,
-       7713,
-       7714,
-       7715,
-       7716,
-       7717,
-       7718,
-       7719,
-       7720,
-       7721,
-       7722,
-       7723,
-       7724,
-       7725,
-       7726,
-       7727,
-       7728,
-       7729,
-       7730,
-       7731,
-       7732,
-       7733,
-       7734,
-       7735,
-       7736,
-       7737,
-       7738,
-       7739,
-       7740,
-       7741,
-       7742,
-       7743,
-       7744,
-       7745,
-       7746,
-       7747,
-       7748,
-       7749,
-       7750,
-       7751,
-       7752,
-       7753,
-       7754,
-       7755,
-       7756,
-       7757,
-       7758,
-       7759,
-       7760,
-       7761,
-       7762,
-       7763,
-       7764,
-       7765,
-       7766,
-       7767,
-       7768,
-       7769,
-       7770,
-       7771,
-       7772,
-       7773,
-       7774,
-       7775,
-       7776,
-       7777,
-       7778,
-       7779,
-       7780,
-       7781,
-       7782,
-       7783,
-       7784,
-       7785,
-       7786,
-       7787,
-       7788,
-       7789,
-       7790,
-       7791,
-       7792,
-       7793,
-       7794,
-       7795,
-       7796,
-       7797,
-       7798,
-       7799,
-       7800,
-       7801,
-       7802,
-       7803,
-       7804,
-       7805,
-       7806,
-       7807,
-       7808,
-       7809,
-       7810,
-       7811,
-       7812,
-       7813,
-       7814,
-       7815,
-       7816,
-       7817,
-       7818,
-       7819,
-       7820,
-       7821,
-       7822,
-       7823,
-       7824,
-       7825,
-       7826,
-       7827,
-       7828,
-       7829,
-       7838,
-       7839,
-       7840,
-       7841,
-       7842,
-       7843,
-       7844,
-       7845,
-       7846,
-       7847,
-       7848,
-       7849,
-       7850,
-       7851,
-       7852,
-       7853,
-       7854,
-       7855,
-       7856,
-       7857,
-       7858,
-       7859,
-       7860,
-       7861,
-       7862,
-       7863,
-       7864,
-       7865,
-       7866,
-       7867,
-       7868,
-       7869,
-       7870,
-       7871,
-       7872,
-       7873,
-       7874,
-       7875,
-       7876,
-       7877,
-       7878,
-       7879,
-       7880,
-       7881,
-       7882,
-       7883,
-       7884,
-       7885,
-       7886,
-       7887,
-       7888,
-       7889,
-       7890,
-       7891,
-       7892,
-       7893,
-       7894,
-       7895,
-       7896,
-       7897,
-       7898,
-       7899,
-       7900,
-       7901,
-       7902,
-       7903,
-       7904,
-       7905,
-       7906,
-       7907,
-       7908,
-       7909,
-       7910,
-       7911,
-       7912,
-       7913,
-       7914,
-       7915,
-       7916,
-       7917,
-       7918,
-       7919,
-       7920,
-       7921,
-       7922,
-       7923,
-       7924,
-       7925,
-       7926,
-       7927,
-       7928,
-       7929,
-       7930,
-       7931,
-       7932,
-       7933,
-       7934,
-       7935,
-       7944,
-       7952,
-       7958,
-       7968,
-       7976,
-       7984,
-       7992,
-       8000,
-       8006,
-       8016,
-       8024,
-       8032,
-       8040,
-       8048,
-       8062,
-       8064,
-       8072,
-       8080,
-       8088,
-       8096,
-       8104,
-       8112,
-       8117,
-       8118,
-       8120,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8136,
-       8144,
-       8148,
-       8150,
-       8152,
-       8160,
-       8168,
-       8178,
-       8181,
-       8182,
-       8184,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8458,
-       8459,
-       8462,
-       8464,
-       8467,
-       8468,
-       8495,
-       8496,
-       8500,
-       8501,
-       8505,
-       8506,
-       8508,
-       8510,
-       8518,
-       8522,
-       8526,
-       8527,
-       8560,
-       8576,
-       8580,
-       8581,
-       9424,
-       9450,
-       11312,
-       11359,
-       11361,
-       11362,
-       11365,
-       11367,
-       11368,
-       11369,
-       11370,
-       11371,
-       11372,
-       11373,
-       11377,
-       11378,
-       11379,
-       11381,
-       11382,
-       11390,
-       11393,
-       11394,
-       11395,
-       11396,
-       11397,
-       11398,
-       11399,
-       11400,
-       11401,
-       11402,
-       11403,
-       11404,
-       11405,
-       11406,
-       11407,
-       11408,
-       11409,
-       11410,
-       11411,
-       11412,
-       11413,
-       11414,
-       11415,
-       11416,
-       11417,
-       11418,
-       11419,
-       11420,
-       11421,
-       11422,
-       11423,
-       11424,
-       11425,
-       11426,
-       11427,
-       11428,
-       11429,
-       11430,
-       11431,
-       11432,
-       11433,
-       11434,
-       11435,
-       11436,
-       11437,
-       11438,
-       11439,
-       11440,
-       11441,
-       11442,
-       11443,
-       11444,
-       11445,
-       11446,
-       11447,
-       11448,
-       11449,
-       11450,
-       11451,
-       11452,
-       11453,
-       11454,
-       11455,
-       11456,
-       11457,
-       11458,
-       11459,
-       11460,
-       11461,
-       11462,
-       11463,
-       11464,
-       11465,
-       11466,
-       11467,
-       11468,
-       11469,
-       11470,
-       11471,
-       11472,
-       11473,
-       11474,
-       11475,
-       11476,
-       11477,
-       11478,
-       11479,
-       11480,
-       11481,
-       11482,
-       11483,
-       11484,
-       11485,
-       11486,
-       11487,
-       11488,
-       11489,
-       11490,
-       11491,
-       11493,
-       11500,
-       11501,
-       11502,
-       11503,
-       11507,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       42561,
-       42562,
-       42563,
-       42564,
-       42565,
-       42566,
-       42567,
-       42568,
-       42569,
-       42570,
-       42571,
-       42572,
-       42573,
-       42574,
-       42575,
-       42576,
-       42577,
-       42578,
-       42579,
-       42580,
-       42581,
-       42582,
-       42583,
-       42584,
-       42585,
-       42586,
-       42587,
-       42588,
-       42589,
-       42590,
-       42591,
-       42592,
-       42593,
-       42594,
-       42595,
-       42596,
-       42597,
-       42598,
-       42599,
-       42600,
-       42601,
-       42602,
-       42603,
-       42604,
-       42605,
-       42606,
-       42625,
-       42626,
-       42627,
-       42628,
-       42629,
-       42630,
-       42631,
-       42632,
-       42633,
-       42634,
-       42635,
-       42636,
-       42637,
-       42638,
-       42639,
-       42640,
-       42641,
-       42642,
-       42643,
-       42644,
-       42645,
-       42646,
-       42647,
-       42648,
-       42649,
-       42650,
-       42651,
-       42654,
-       42787,
-       42788,
-       42789,
-       42790,
-       42791,
-       42792,
-       42793,
-       42794,
-       42795,
-       42796,
-       42797,
-       42798,
-       42799,
-       42802,
-       42803,
-       42804,
-       42805,
-       42806,
-       42807,
-       42808,
-       42809,
-       42810,
-       42811,
-       42812,
-       42813,
-       42814,
-       42815,
-       42816,
-       42817,
-       42818,
-       42819,
-       42820,
-       42821,
-       42822,
-       42823,
-       42824,
-       42825,
-       42826,
-       42827,
-       42828,
-       42829,
-       42830,
-       42831,
-       42832,
-       42833,
-       42834,
-       42835,
-       42836,
-       42837,
-       42838,
-       42839,
-       42840,
-       42841,
-       42842,
-       42843,
-       42844,
-       42845,
-       42846,
-       42847,
-       42848,
-       42849,
-       42850,
-       42851,
-       42852,
-       42853,
-       42854,
-       42855,
-       42856,
-       42857,
-       42858,
-       42859,
-       42860,
-       42861,
-       42862,
-       42863,
-       42873,
-       42874,
-       42875,
-       42876,
-       42877,
-       42879,
-       42880,
-       42881,
-       42882,
-       42883,
-       42884,
-       42885,
-       42886,
-       42887,
-       42888,
-       42892,
-       42893,
-       42894,
-       42895,
-       42897,
-       42898,
-       42899,
-       42902,
-       42903,
-       42904,
-       42905,
-       42906,
-       42907,
-       42908,
-       42909,
-       42910,
-       42911,
-       42912,
-       42913,
-       42914,
-       42915,
-       42916,
-       42917,
-       42918,
-       42919,
-       42920,
-       42921,
-       42922,
-       43000,
-       43003,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       64256,
-       64263,
-       64275,
-       64280,
-       65345,
-       65371,
-       66600,
-       66640,
-       71872,
-       71904,
-       119834,
-       119860,
-       119886,
-       119893,
-       119894,
-       119912,
-       119938,
-       119964,
-       119990,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120016,
-       120042,
-       120068,
-       120094,
-       120120,
-       120146,
-       120172,
-       120198,
-       120224,
-       120250,
-       120276,
-       120302,
-       120328,
-       120354,
-       120380,
-       120406,
-       120432,
-       120458,
-       120486,
-       120514,
-       120539,
-       120540,
-       120546,
-       120572,
-       120597,
-       120598,
-       120604,
-       120630,
-       120655,
-       120656,
-       120662,
-       120688,
-       120713,
-       120714,
-       120720,
-       120746,
-       120771,
-       120772,
-       120778,
-       120779,
-       120780
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x70,
+       0x71,
+       0x81,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xCB,
+       0xD0,
+       0xDB,
+       0xE0,
+       0x101,
+       0x102,
+       0x103,
+       0x104,
+       0x105,
+       0x106,
+       0x107,
+       0x108,
+       0x109,
+       0x10A,
+       0x10B,
+       0x10C,
+       0x10D,
+       0x10E,
+       0x10F,
+       0x110,
+       0x111,
+       0x112,
+       0x113,
+       0x114,
+       0x115,
+       0x116,
+       0x117,
+       0x118,
+       0x119,
+       0x11A,
+       0x11B,
+       0x11C,
+       0x11D,
+       0x11E,
+       0x11F,
+       0x120,
+       0x121,
+       0x122,
+       0x123,
+       0x124,
+       0x125,
+       0x126,
+       0x127,
+       0x128,
+       0x129,
+       0x12A,
+       0x12B,
+       0x12C,
+       0x12D,
+       0x12E,
+       0x12F,
+       0x130,
+       0x131,
+       0x132,
+       0x133,
+       0x134,
+       0x135,
+       0x136,
+       0x137,
+       0x139,
+       0x13A,
+       0x13B,
+       0x13C,
+       0x13D,
+       0x13E,
+       0x13F,
+       0x140,
+       0x141,
+       0x142,
+       0x143,
+       0x144,
+       0x145,
+       0x146,
+       0x147,
+       0x148,
+       0x14A,
+       0x14B,
+       0x14C,
+       0x14D,
+       0x14E,
+       0x14F,
+       0x150,
+       0x151,
+       0x152,
+       0x153,
+       0x154,
+       0x155,
+       0x156,
+       0x157,
+       0x158,
+       0x159,
+       0x15A,
+       0x15B,
+       0x15C,
+       0x15D,
+       0x15E,
+       0x15F,
+       0x160,
+       0x161,
+       0x162,
+       0x163,
+       0x164,
+       0x165,
+       0x166,
+       0x167,
+       0x168,
+       0x169,
+       0x16A,
+       0x16B,
+       0x16C,
+       0x16D,
+       0x16E,
+       0x16F,
+       0x170,
+       0x171,
+       0x172,
+       0x173,
+       0x174,
+       0x175,
+       0x176,
+       0x177,
+       0x178,
+       0x17A,
+       0x17B,
+       0x17C,
+       0x17D,
+       0x17E,
+       0x181,
+       0x183,
+       0x184,
+       0x185,
+       0x186,
+       0x188,
+       0x189,
+       0x18C,
+       0x18E,
+       0x192,
+       0x193,
+       0x195,
+       0x196,
+       0x199,
+       0x19C,
+       0x19E,
+       0x19F,
+       0x1A1,
+       0x1A2,
+       0x1A3,
+       0x1A4,
+       0x1A5,
+       0x1A6,
+       0x1A8,
+       0x1A9,
+       0x1AA,
+       0x1AC,
+       0x1AD,
+       0x1AE,
+       0x1B0,
+       0x1B1,
+       0x1B4,
+       0x1B5,
+       0x1B6,
+       0x1B7,
+       0x1B9,
+       0x1BB,
+       0x1BD,
+       0x1C0,
+       0x1C6,
+       0x1C7,
+       0x1C9,
+       0x1CA,
+       0x1CC,
+       0x1CD,
+       0x1CE,
+       0x1CF,
+       0x1D0,
+       0x1D1,
+       0x1D2,
+       0x1D3,
+       0x1D4,
+       0x1D5,
+       0x1D6,
+       0x1D7,
+       0x1D8,
+       0x1D9,
+       0x1DA,
+       0x1DB,
+       0x1DC,
+       0x1DE,
+       0x1DF,
+       0x1E0,
+       0x1E1,
+       0x1E2,
+       0x1E3,
+       0x1E4,
+       0x1E5,
+       0x1E6,
+       0x1E7,
+       0x1E8,
+       0x1E9,
+       0x1EA,
+       0x1EB,
+       0x1EC,
+       0x1ED,
+       0x1EE,
+       0x1EF,
+       0x1F1,
+       0x1F3,
+       0x1F4,
+       0x1F5,
+       0x1F6,
+       0x1F9,
+       0x1FA,
+       0x1FB,
+       0x1FC,
+       0x1FD,
+       0x1FE,
+       0x1FF,
+       0x200,
+       0x201,
+       0x202,
+       0x203,
+       0x204,
+       0x205,
+       0x206,
+       0x207,
+       0x208,
+       0x209,
+       0x20A,
+       0x20B,
+       0x20C,
+       0x20D,
+       0x20E,
+       0x20F,
+       0x210,
+       0x211,
+       0x212,
+       0x213,
+       0x214,
+       0x215,
+       0x216,
+       0x217,
+       0x218,
+       0x219,
+       0x21A,
+       0x21B,
+       0x21C,
+       0x21D,
+       0x21E,
+       0x21F,
+       0x220,
+       0x221,
+       0x222,
+       0x223,
+       0x224,
+       0x225,
+       0x226,
+       0x227,
+       0x228,
+       0x229,
+       0x22A,
+       0x22B,
+       0x22C,
+       0x22D,
+       0x22E,
+       0x22F,
+       0x230,
+       0x231,
+       0x232,
+       0x233,
+       0x23A,
+       0x23C,
+       0x23D,
+       0x23F,
+       0x241,
+       0x242,
+       0x243,
+       0x247,
+       0x248,
+       0x249,
+       0x24A,
+       0x24B,
+       0x24C,
+       0x24D,
+       0x24E,
+       0x24F,
+       0x294,
+       0x295,
+       0x2B9,
+       0x2C0,
+       0x2C2,
+       0x2E0,
+       0x2E5,
+       0x345,
+       0x346,
+       0x371,
+       0x372,
+       0x373,
+       0x374,
+       0x377,
+       0x378,
+       0x37A,
+       0x37E,
+       0x390,
+       0x391,
+       0x3AC,
+       0x3CF,
+       0x3D0,
+       0x3D2,
+       0x3D5,
+       0x3D8,
+       0x3D9,
+       0x3DA,
+       0x3DB,
+       0x3DC,
+       0x3DD,
+       0x3DE,
+       0x3DF,
+       0x3E0,
+       0x3E1,
+       0x3E2,
+       0x3E3,
+       0x3E4,
+       0x3E5,
+       0x3E6,
+       0x3E7,
+       0x3E8,
+       0x3E9,
+       0x3EA,
+       0x3EB,
+       0x3EC,
+       0x3ED,
+       0x3EE,
+       0x3EF,
+       0x3F4,
+       0x3F5,
+       0x3F6,
+       0x3F8,
+       0x3F9,
+       0x3FB,
+       0x3FD,
+       0x430,
+       0x460,
+       0x461,
+       0x462,
+       0x463,
+       0x464,
+       0x465,
+       0x466,
+       0x467,
+       0x468,
+       0x469,
+       0x46A,
+       0x46B,
+       0x46C,
+       0x46D,
+       0x46E,
+       0x46F,
+       0x470,
+       0x471,
+       0x472,
+       0x473,
+       0x474,
+       0x475,
+       0x476,
+       0x477,
+       0x478,
+       0x479,
+       0x47A,
+       0x47B,
+       0x47C,
+       0x47D,
+       0x47E,
+       0x47F,
+       0x480,
+       0x481,
+       0x482,
+       0x48B,
+       0x48C,
+       0x48D,
+       0x48E,
+       0x48F,
+       0x490,
+       0x491,
+       0x492,
+       0x493,
+       0x494,
+       0x495,
+       0x496,
+       0x497,
+       0x498,
+       0x499,
+       0x49A,
+       0x49B,
+       0x49C,
+       0x49D,
+       0x49E,
+       0x49F,
+       0x4A0,
+       0x4A1,
+       0x4A2,
+       0x4A3,
+       0x4A4,
+       0x4A5,
+       0x4A6,
+       0x4A7,
+       0x4A8,
+       0x4A9,
+       0x4AA,
+       0x4AB,
+       0x4AC,
+       0x4AD,
+       0x4AE,
+       0x4AF,
+       0x4B0,
+       0x4B1,
+       0x4B2,
+       0x4B3,
+       0x4B4,
+       0x4B5,
+       0x4B6,
+       0x4B7,
+       0x4B8,
+       0x4B9,
+       0x4BA,
+       0x4BB,
+       0x4BC,
+       0x4BD,
+       0x4BE,
+       0x4BF,
+       0x4C0,
+       0x4C2,
+       0x4C3,
+       0x4C4,
+       0x4C5,
+       0x4C6,
+       0x4C7,
+       0x4C8,
+       0x4C9,
+       0x4CA,
+       0x4CB,
+       0x4CC,
+       0x4CD,
+       0x4CE,
+       0x4D0,
+       0x4D1,
+       0x4D2,
+       0x4D3,
+       0x4D4,
+       0x4D5,
+       0x4D6,
+       0x4D7,
+       0x4D8,
+       0x4D9,
+       0x4DA,
+       0x4DB,
+       0x4DC,
+       0x4DD,
+       0x4DE,
+       0x4DF,
+       0x4E0,
+       0x4E1,
+       0x4E2,
+       0x4E3,
+       0x4E4,
+       0x4E5,
+       0x4E6,
+       0x4E7,
+       0x4E8,
+       0x4E9,
+       0x4EA,
+       0x4EB,
+       0x4EC,
+       0x4ED,
+       0x4EE,
+       0x4EF,
+       0x4F0,
+       0x4F1,
+       0x4F2,
+       0x4F3,
+       0x4F4,
+       0x4F5,
+       0x4F6,
+       0x4F7,
+       0x4F8,
+       0x4F9,
+       0x4FA,
+       0x4FB,
+       0x4FC,
+       0x4FD,
+       0x4FE,
+       0x4FF,
+       0x500,
+       0x501,
+       0x502,
+       0x503,
+       0x504,
+       0x505,
+       0x506,
+       0x507,
+       0x508,
+       0x509,
+       0x50A,
+       0x50B,
+       0x50C,
+       0x50D,
+       0x50E,
+       0x50F,
+       0x510,
+       0x511,
+       0x512,
+       0x513,
+       0x514,
+       0x515,
+       0x516,
+       0x517,
+       0x518,
+       0x519,
+       0x51A,
+       0x51B,
+       0x51C,
+       0x51D,
+       0x51E,
+       0x51F,
+       0x520,
+       0x521,
+       0x522,
+       0x523,
+       0x524,
+       0x525,
+       0x526,
+       0x527,
+       0x528,
+       0x529,
+       0x52A,
+       0x52B,
+       0x52C,
+       0x52D,
+       0x52E,
+       0x52F,
+       0x530,
+       0x561,
+       0x588,
+       0x1D00,
+       0x1DC0,
+       0x1E01,
+       0x1E02,
+       0x1E03,
+       0x1E04,
+       0x1E05,
+       0x1E06,
+       0x1E07,
+       0x1E08,
+       0x1E09,
+       0x1E0A,
+       0x1E0B,
+       0x1E0C,
+       0x1E0D,
+       0x1E0E,
+       0x1E0F,
+       0x1E10,
+       0x1E11,
+       0x1E12,
+       0x1E13,
+       0x1E14,
+       0x1E15,
+       0x1E16,
+       0x1E17,
+       0x1E18,
+       0x1E19,
+       0x1E1A,
+       0x1E1B,
+       0x1E1C,
+       0x1E1D,
+       0x1E1E,
+       0x1E1F,
+       0x1E20,
+       0x1E21,
+       0x1E22,
+       0x1E23,
+       0x1E24,
+       0x1E25,
+       0x1E26,
+       0x1E27,
+       0x1E28,
+       0x1E29,
+       0x1E2A,
+       0x1E2B,
+       0x1E2C,
+       0x1E2D,
+       0x1E2E,
+       0x1E2F,
+       0x1E30,
+       0x1E31,
+       0x1E32,
+       0x1E33,
+       0x1E34,
+       0x1E35,
+       0x1E36,
+       0x1E37,
+       0x1E38,
+       0x1E39,
+       0x1E3A,
+       0x1E3B,
+       0x1E3C,
+       0x1E3D,
+       0x1E3E,
+       0x1E3F,
+       0x1E40,
+       0x1E41,
+       0x1E42,
+       0x1E43,
+       0x1E44,
+       0x1E45,
+       0x1E46,
+       0x1E47,
+       0x1E48,
+       0x1E49,
+       0x1E4A,
+       0x1E4B,
+       0x1E4C,
+       0x1E4D,
+       0x1E4E,
+       0x1E4F,
+       0x1E50,
+       0x1E51,
+       0x1E52,
+       0x1E53,
+       0x1E54,
+       0x1E55,
+       0x1E56,
+       0x1E57,
+       0x1E58,
+       0x1E59,
+       0x1E5A,
+       0x1E5B,
+       0x1E5C,
+       0x1E5D,
+       0x1E5E,
+       0x1E5F,
+       0x1E60,
+       0x1E61,
+       0x1E62,
+       0x1E63,
+       0x1E64,
+       0x1E65,
+       0x1E66,
+       0x1E67,
+       0x1E68,
+       0x1E69,
+       0x1E6A,
+       0x1E6B,
+       0x1E6C,
+       0x1E6D,
+       0x1E6E,
+       0x1E6F,
+       0x1E70,
+       0x1E71,
+       0x1E72,
+       0x1E73,
+       0x1E74,
+       0x1E75,
+       0x1E76,
+       0x1E77,
+       0x1E78,
+       0x1E79,
+       0x1E7A,
+       0x1E7B,
+       0x1E7C,
+       0x1E7D,
+       0x1E7E,
+       0x1E7F,
+       0x1E80,
+       0x1E81,
+       0x1E82,
+       0x1E83,
+       0x1E84,
+       0x1E85,
+       0x1E86,
+       0x1E87,
+       0x1E88,
+       0x1E89,
+       0x1E8A,
+       0x1E8B,
+       0x1E8C,
+       0x1E8D,
+       0x1E8E,
+       0x1E8F,
+       0x1E90,
+       0x1E91,
+       0x1E92,
+       0x1E93,
+       0x1E94,
+       0x1E95,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1EA1,
+       0x1EA2,
+       0x1EA3,
+       0x1EA4,
+       0x1EA5,
+       0x1EA6,
+       0x1EA7,
+       0x1EA8,
+       0x1EA9,
+       0x1EAA,
+       0x1EAB,
+       0x1EAC,
+       0x1EAD,
+       0x1EAE,
+       0x1EAF,
+       0x1EB0,
+       0x1EB1,
+       0x1EB2,
+       0x1EB3,
+       0x1EB4,
+       0x1EB5,
+       0x1EB6,
+       0x1EB7,
+       0x1EB8,
+       0x1EB9,
+       0x1EBA,
+       0x1EBB,
+       0x1EBC,
+       0x1EBD,
+       0x1EBE,
+       0x1EBF,
+       0x1EC0,
+       0x1EC1,
+       0x1EC2,
+       0x1EC3,
+       0x1EC4,
+       0x1EC5,
+       0x1EC6,
+       0x1EC7,
+       0x1EC8,
+       0x1EC9,
+       0x1ECA,
+       0x1ECB,
+       0x1ECC,
+       0x1ECD,
+       0x1ECE,
+       0x1ECF,
+       0x1ED0,
+       0x1ED1,
+       0x1ED2,
+       0x1ED3,
+       0x1ED4,
+       0x1ED5,
+       0x1ED6,
+       0x1ED7,
+       0x1ED8,
+       0x1ED9,
+       0x1EDA,
+       0x1EDB,
+       0x1EDC,
+       0x1EDD,
+       0x1EDE,
+       0x1EDF,
+       0x1EE0,
+       0x1EE1,
+       0x1EE2,
+       0x1EE3,
+       0x1EE4,
+       0x1EE5,
+       0x1EE6,
+       0x1EE7,
+       0x1EE8,
+       0x1EE9,
+       0x1EEA,
+       0x1EEB,
+       0x1EEC,
+       0x1EED,
+       0x1EEE,
+       0x1EEF,
+       0x1EF0,
+       0x1EF1,
+       0x1EF2,
+       0x1EF3,
+       0x1EF4,
+       0x1EF5,
+       0x1EF6,
+       0x1EF7,
+       0x1EF8,
+       0x1EF9,
+       0x1EFA,
+       0x1EFB,
+       0x1EFC,
+       0x1EFD,
+       0x1EFE,
+       0x1EFF,
+       0x1F08,
+       0x1F10,
+       0x1F16,
+       0x1F20,
+       0x1F28,
+       0x1F30,
+       0x1F38,
+       0x1F40,
+       0x1F46,
+       0x1F50,
+       0x1F58,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1F7E,
+       0x1F80,
+       0x1F88,
+       0x1F90,
+       0x1F98,
+       0x1FA0,
+       0x1FA8,
+       0x1FB0,
+       0x1FB5,
+       0x1FB6,
+       0x1FB8,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FC8,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FD8,
+       0x1FE0,
+       0x1FE8,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FF8,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x210A,
+       0x210B,
+       0x210E,
+       0x2110,
+       0x2113,
+       0x2114,
+       0x212F,
+       0x2130,
+       0x2134,
+       0x2135,
+       0x2139,
+       0x213A,
+       0x213C,
+       0x213E,
+       0x2146,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2170,
+       0x2180,
+       0x2184,
+       0x2185,
+       0x24D0,
+       0x24EA,
+       0x2C30,
+       0x2C5F,
+       0x2C61,
+       0x2C62,
+       0x2C65,
+       0x2C67,
+       0x2C68,
+       0x2C69,
+       0x2C6A,
+       0x2C6B,
+       0x2C6C,
+       0x2C6D,
+       0x2C71,
+       0x2C72,
+       0x2C73,
+       0x2C75,
+       0x2C76,
+       0x2C7E,
+       0x2C81,
+       0x2C82,
+       0x2C83,
+       0x2C84,
+       0x2C85,
+       0x2C86,
+       0x2C87,
+       0x2C88,
+       0x2C89,
+       0x2C8A,
+       0x2C8B,
+       0x2C8C,
+       0x2C8D,
+       0x2C8E,
+       0x2C8F,
+       0x2C90,
+       0x2C91,
+       0x2C92,
+       0x2C93,
+       0x2C94,
+       0x2C95,
+       0x2C96,
+       0x2C97,
+       0x2C98,
+       0x2C99,
+       0x2C9A,
+       0x2C9B,
+       0x2C9C,
+       0x2C9D,
+       0x2C9E,
+       0x2C9F,
+       0x2CA0,
+       0x2CA1,
+       0x2CA2,
+       0x2CA3,
+       0x2CA4,
+       0x2CA5,
+       0x2CA6,
+       0x2CA7,
+       0x2CA8,
+       0x2CA9,
+       0x2CAA,
+       0x2CAB,
+       0x2CAC,
+       0x2CAD,
+       0x2CAE,
+       0x2CAF,
+       0x2CB0,
+       0x2CB1,
+       0x2CB2,
+       0x2CB3,
+       0x2CB4,
+       0x2CB5,
+       0x2CB6,
+       0x2CB7,
+       0x2CB8,
+       0x2CB9,
+       0x2CBA,
+       0x2CBB,
+       0x2CBC,
+       0x2CBD,
+       0x2CBE,
+       0x2CBF,
+       0x2CC0,
+       0x2CC1,
+       0x2CC2,
+       0x2CC3,
+       0x2CC4,
+       0x2CC5,
+       0x2CC6,
+       0x2CC7,
+       0x2CC8,
+       0x2CC9,
+       0x2CCA,
+       0x2CCB,
+       0x2CCC,
+       0x2CCD,
+       0x2CCE,
+       0x2CCF,
+       0x2CD0,
+       0x2CD1,
+       0x2CD2,
+       0x2CD3,
+       0x2CD4,
+       0x2CD5,
+       0x2CD6,
+       0x2CD7,
+       0x2CD8,
+       0x2CD9,
+       0x2CDA,
+       0x2CDB,
+       0x2CDC,
+       0x2CDD,
+       0x2CDE,
+       0x2CDF,
+       0x2CE0,
+       0x2CE1,
+       0x2CE2,
+       0x2CE3,
+       0x2CE5,
+       0x2CEC,
+       0x2CED,
+       0x2CEE,
+       0x2CEF,
+       0x2CF3,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0xA641,
+       0xA642,
+       0xA643,
+       0xA644,
+       0xA645,
+       0xA646,
+       0xA647,
+       0xA648,
+       0xA649,
+       0xA64A,
+       0xA64B,
+       0xA64C,
+       0xA64D,
+       0xA64E,
+       0xA64F,
+       0xA650,
+       0xA651,
+       0xA652,
+       0xA653,
+       0xA654,
+       0xA655,
+       0xA656,
+       0xA657,
+       0xA658,
+       0xA659,
+       0xA65A,
+       0xA65B,
+       0xA65C,
+       0xA65D,
+       0xA65E,
+       0xA65F,
+       0xA660,
+       0xA661,
+       0xA662,
+       0xA663,
+       0xA664,
+       0xA665,
+       0xA666,
+       0xA667,
+       0xA668,
+       0xA669,
+       0xA66A,
+       0xA66B,
+       0xA66C,
+       0xA66D,
+       0xA66E,
+       0xA681,
+       0xA682,
+       0xA683,
+       0xA684,
+       0xA685,
+       0xA686,
+       0xA687,
+       0xA688,
+       0xA689,
+       0xA68A,
+       0xA68B,
+       0xA68C,
+       0xA68D,
+       0xA68E,
+       0xA68F,
+       0xA690,
+       0xA691,
+       0xA692,
+       0xA693,
+       0xA694,
+       0xA695,
+       0xA696,
+       0xA697,
+       0xA698,
+       0xA699,
+       0xA69A,
+       0xA69B,
+       0xA69E,
+       0xA723,
+       0xA724,
+       0xA725,
+       0xA726,
+       0xA727,
+       0xA728,
+       0xA729,
+       0xA72A,
+       0xA72B,
+       0xA72C,
+       0xA72D,
+       0xA72E,
+       0xA72F,
+       0xA732,
+       0xA733,
+       0xA734,
+       0xA735,
+       0xA736,
+       0xA737,
+       0xA738,
+       0xA739,
+       0xA73A,
+       0xA73B,
+       0xA73C,
+       0xA73D,
+       0xA73E,
+       0xA73F,
+       0xA740,
+       0xA741,
+       0xA742,
+       0xA743,
+       0xA744,
+       0xA745,
+       0xA746,
+       0xA747,
+       0xA748,
+       0xA749,
+       0xA74A,
+       0xA74B,
+       0xA74C,
+       0xA74D,
+       0xA74E,
+       0xA74F,
+       0xA750,
+       0xA751,
+       0xA752,
+       0xA753,
+       0xA754,
+       0xA755,
+       0xA756,
+       0xA757,
+       0xA758,
+       0xA759,
+       0xA75A,
+       0xA75B,
+       0xA75C,
+       0xA75D,
+       0xA75E,
+       0xA75F,
+       0xA760,
+       0xA761,
+       0xA762,
+       0xA763,
+       0xA764,
+       0xA765,
+       0xA766,
+       0xA767,
+       0xA768,
+       0xA769,
+       0xA76A,
+       0xA76B,
+       0xA76C,
+       0xA76D,
+       0xA76E,
+       0xA76F,
+       0xA779,
+       0xA77A,
+       0xA77B,
+       0xA77C,
+       0xA77D,
+       0xA77F,
+       0xA780,
+       0xA781,
+       0xA782,
+       0xA783,
+       0xA784,
+       0xA785,
+       0xA786,
+       0xA787,
+       0xA788,
+       0xA78C,
+       0xA78D,
+       0xA78E,
+       0xA78F,
+       0xA791,
+       0xA792,
+       0xA793,
+       0xA796,
+       0xA797,
+       0xA798,
+       0xA799,
+       0xA79A,
+       0xA79B,
+       0xA79C,
+       0xA79D,
+       0xA79E,
+       0xA79F,
+       0xA7A0,
+       0xA7A1,
+       0xA7A2,
+       0xA7A3,
+       0xA7A4,
+       0xA7A5,
+       0xA7A6,
+       0xA7A7,
+       0xA7A8,
+       0xA7A9,
+       0xA7AA,
+       0xA7F8,
+       0xA7FB,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFF41,
+       0xFF5B,
+       0x10428,
+       0x10450,
+       0x118C0,
+       0x118E0,
+       0x1D41A,
+       0x1D434,
+       0x1D44E,
+       0x1D455,
+       0x1D456,
+       0x1D468,
+       0x1D482,
+       0x1D49C,
+       0x1D4B6,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D4D0,
+       0x1D4EA,
+       0x1D504,
+       0x1D51E,
+       0x1D538,
+       0x1D552,
+       0x1D56C,
+       0x1D586,
+       0x1D5A0,
+       0x1D5BA,
+       0x1D5D4,
+       0x1D5EE,
+       0x1D608,
+       0x1D622,
+       0x1D63C,
+       0x1D656,
+       0x1D670,
+       0x1D68A,
+       0x1D6A6,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6E2,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D71C,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D756,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D790,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CA,
+       0x1D7CB,
+       0x1D7CC
 };
 
 static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
@@ -17883,1211 +44313,1211 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       64,
-       255,
-       256,
-       888,
-       890,
-       896,
-       900,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1328,
-       1329,
-       1367,
-       1369,
-       1376,
-       1377,
-       1416,
-       1417,
-       1419,
-       1421,
-       1424,
-       1425,
-       1480,
-       1488,
-       1515,
-       1520,
-       1525,
-       1536,
-       1565,
-       1566,
-       1806,
-       1807,
-       1867,
-       1869,
-       1970,
-       1984,
-       2043,
-       2048,
-       2094,
-       2096,
-       2111,
-       2112,
-       2140,
-       2142,
-       2143,
-       2208,
-       2227,
-       2276,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2492,
-       2501,
-       2503,
-       2505,
-       2507,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2556,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2620,
-       2621,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2638,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2748,
-       2758,
-       2759,
-       2762,
-       2763,
-       2766,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2802,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2876,
-       2885,
-       2887,
-       2889,
-       2891,
-       2894,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2936,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3022,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3067,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3150,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3192,
-       3200,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3260,
-       3269,
-       3270,
-       3273,
-       3274,
-       3278,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3446,
-       3449,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3530,
-       3531,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3573,
-       3585,
-       3643,
-       3647,
-       3676,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3784,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3912,
-       3913,
-       3949,
-       3953,
-       3992,
-       3993,
-       4029,
-       4030,
-       4045,
-       4046,
-       4059,
-       4096,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4957,
-       4989,
-       4992,
-       5018,
-       5024,
-       5109,
-       5120,
-       5789,
-       5792,
-       5881,
-       5888,
-       5901,
-       5902,
-       5909,
-       5920,
-       5943,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6110,
-       6112,
-       6122,
-       6128,
-       6138,
-       6144,
-       6159,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6460,
-       6464,
-       6465,
-       6468,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6619,
-       6622,
-       6684,
-       6686,
-       6751,
-       6752,
-       6781,
-       6783,
-       6794,
-       6800,
-       6810,
-       6816,
-       6830,
-       6832,
-       6847,
-       6912,
-       6988,
-       6992,
-       7037,
-       7040,
-       7156,
-       7164,
-       7224,
-       7227,
-       7242,
-       7245,
-       7296,
-       7360,
-       7368,
-       7376,
-       7415,
-       7416,
-       7418,
-       7424,
-       7670,
-       7676,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8133,
-       8134,
-       8148,
-       8150,
-       8156,
-       8157,
-       8176,
-       8178,
-       8181,
-       8182,
-       8191,
-       8192,
-       8232,
-       8234,
-       8293,
-       8294,
-       8306,
-       8308,
-       8335,
-       8336,
-       8349,
-       8352,
-       8382,
-       8400,
-       8433,
-       8448,
-       8586,
-       8592,
-       9211,
-       9216,
-       9255,
-       9280,
-       9291,
-       9312,
-       11124,
-       11126,
-       11158,
-       11160,
-       11194,
-       11197,
-       11209,
-       11210,
-       11218,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11508,
-       11513,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11633,
-       11647,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11843,
-       11904,
-       11930,
-       11931,
-       12020,
-       12032,
-       12246,
-       12272,
-       12284,
-       12288,
-       12352,
-       12353,
-       12439,
-       12441,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12688,
-       12731,
-       12736,
-       12772,
-       12784,
-       12831,
-       12832,
-       13055,
-       13056,
-       19894,
-       19904,
-       40909,
-       40960,
-       42125,
-       42128,
-       42183,
-       42192,
-       42540,
-       42560,
-       42654,
-       42655,
-       42744,
-       42752,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43052,
-       43056,
-       43066,
-       43072,
-       43128,
-       43136,
-       43205,
-       43214,
-       43226,
-       43232,
-       43260,
-       43264,
-       43348,
-       43359,
-       43389,
-       43392,
-       43470,
-       43471,
-       43482,
-       43486,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43612,
-       43715,
-       43739,
-       43767,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43872,
-       43876,
-       43878,
-       43968,
-       44014,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       57344,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64450,
-       64467,
-       64832,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65022,
-       65024,
-       65050,
-       65056,
-       65070,
-       65072,
-       65107,
-       65108,
-       65127,
-       65128,
-       65132,
-       65136,
-       65141,
-       65142,
-       65277,
-       65279,
-       65280,
-       65281,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65504,
-       65511,
-       65512,
-       65519,
-       65529,
-       65534,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65792,
-       65795,
-       65799,
-       65844,
-       65847,
-       65933,
-       65936,
-       65948,
-       65952,
-       65953,
-       66000,
-       66046,
-       66176,
-       66205,
-       66208,
-       66257,
-       66272,
-       66300,
-       66304,
-       66340,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66463,
-       66500,
-       66504,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       66927,
-       66928,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67671,
-       67743,
-       67751,
-       67760,
-       67840,
-       67868,
-       67871,
-       67898,
-       67903,
-       67904,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68152,
-       68155,
-       68159,
-       68168,
-       68176,
-       68185,
-       68192,
-       68256,
-       68288,
-       68327,
-       68331,
-       68343,
-       68352,
-       68406,
-       68409,
-       68438,
-       68440,
-       68467,
-       68472,
-       68498,
-       68505,
-       68509,
-       68521,
-       68528,
-       68608,
-       68681,
-       69216,
-       69247,
-       69632,
-       69710,
-       69714,
-       69744,
-       69759,
-       69826,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69941,
-       69942,
-       69956,
-       69968,
-       70007,
-       70016,
-       70089,
-       70093,
-       70094,
-       70096,
-       70107,
-       70113,
-       70133,
-       70144,
-       70162,
-       70163,
-       70206,
-       70320,
-       70379,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70460,
-       70469,
-       70471,
-       70473,
-       70475,
-       70478,
-       70487,
-       70488,
-       70493,
-       70500,
-       70502,
-       70509,
-       70512,
-       70517,
-       70784,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71114,
-       71168,
-       71237,
-       71248,
-       71258,
-       71296,
-       71352,
-       71360,
-       71370,
-       71840,
-       71923,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       74864,
-       74869,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92782,
-       92784,
-       92880,
-       92910,
-       92912,
-       92918,
-       92928,
-       92998,
-       93008,
-       93018,
-       93019,
-       93026,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94095,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113820,
-       113828,
-       118784,
-       119030,
-       119040,
-       119079,
-       119081,
-       119262,
-       119296,
-       119366,
-       119552,
-       119639,
-       119648,
-       119666,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       125127,
-       125143,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       126704,
-       126706,
-       126976,
-       127020,
-       127024,
-       127124,
-       127136,
-       127151,
-       127153,
-       127168,
-       127169,
-       127184,
-       127185,
-       127222,
-       127232,
-       127245,
-       127248,
-       127279,
-       127280,
-       127340,
-       127344,
-       127387,
-       127462,
-       127491,
-       127504,
-       127547,
-       127552,
-       127561,
-       127568,
-       127570,
-       127744,
-       127789,
-       127792,
-       127870,
-       127872,
-       127951,
-       127956,
-       127992,
-       128000,
-       128255,
-       128256,
-       128331,
-       128336,
-       128378,
-       128379,
-       128420,
-       128421,
-       128579,
-       128581,
-       128720,
-       128736,
-       128749,
-       128752,
-       128756,
-       128768,
-       128884,
-       128896,
-       128981,
-       129024,
-       129036,
-       129040,
-       129096,
-       129104,
-       129114,
-       129120,
-       129160,
-       129168,
-       129198,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102,
-       917505,
-       917506,
-       917536,
-       917632,
-       917760,
-       918000,
-       983040,
-       1048574,
-       1048576,
-       1114110
+       0x0,
+       0x40,
+       0xFF,
+       0x100,
+       0x378,
+       0x37A,
+       0x380,
+       0x384,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x560,
+       0x561,
+       0x588,
+       0x589,
+       0x58B,
+       0x58D,
+       0x590,
+       0x591,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F5,
+       0x600,
+       0x61D,
+       0x61E,
+       0x70E,
+       0x70F,
+       0x74B,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7FB,
+       0x800,
+       0x82E,
+       0x830,
+       0x83F,
+       0x840,
+       0x85C,
+       0x85E,
+       0x85F,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9FC,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF2,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB78,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBFB,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC78,
+       0xC80,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD76,
+       0xD79,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF5,
+       0xE01,
+       0xE3B,
+       0xE3F,
+       0xE5C,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFBE,
+       0xFCD,
+       0xFCE,
+       0xFDB,
+       0x1000,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x137D,
+       0x1380,
+       0x139A,
+       0x13A0,
+       0x13F5,
+       0x1400,
+       0x169D,
+       0x16A0,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1715,
+       0x1720,
+       0x1737,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x17F0,
+       0x17FA,
+       0x1800,
+       0x180F,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1940,
+       0x1941,
+       0x1944,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DB,
+       0x19DE,
+       0x1A1C,
+       0x1A1E,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA0,
+       0x1AAE,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B4C,
+       0x1B50,
+       0x1B7D,
+       0x1B80,
+       0x1BF4,
+       0x1BFC,
+       0x1C38,
+       0x1C3B,
+       0x1C4A,
+       0x1C4D,
+       0x1C80,
+       0x1CC0,
+       0x1CC8,
+       0x1CD0,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DF6,
+       0x1DFC,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FC5,
+       0x1FC6,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FDD,
+       0x1FF0,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFF,
+       0x2000,
+       0x2028,
+       0x202A,
+       0x2065,
+       0x2066,
+       0x2072,
+       0x2074,
+       0x208F,
+       0x2090,
+       0x209D,
+       0x20A0,
+       0x20BE,
+       0x20D0,
+       0x20F1,
+       0x2100,
+       0x218A,
+       0x2190,
+       0x23FB,
+       0x2400,
+       0x2427,
+       0x2440,
+       0x244B,
+       0x2460,
+       0x2B74,
+       0x2B76,
+       0x2B96,
+       0x2B98,
+       0x2BBA,
+       0x2BBD,
+       0x2BC9,
+       0x2BCA,
+       0x2BD2,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CF4,
+       0x2CF9,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D71,
+       0x2D7F,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E43,
+       0x2E80,
+       0x2E9A,
+       0x2E9B,
+       0x2EF4,
+       0x2F00,
+       0x2FD6,
+       0x2FF0,
+       0x2FFC,
+       0x3000,
+       0x3040,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x3190,
+       0x31BB,
+       0x31C0,
+       0x31E4,
+       0x31F0,
+       0x321F,
+       0x3220,
+       0x32FF,
+       0x3300,
+       0x4DB6,
+       0x4DC0,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA490,
+       0xA4C7,
+       0xA4D0,
+       0xA62C,
+       0xA640,
+       0xA69E,
+       0xA69F,
+       0xA6F8,
+       0xA700,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA82C,
+       0xA830,
+       0xA83A,
+       0xA840,
+       0xA878,
+       0xA880,
+       0xA8C5,
+       0xA8CE,
+       0xA8DA,
+       0xA8E0,
+       0xA8FC,
+       0xA900,
+       0xA954,
+       0xA95F,
+       0xA97D,
+       0xA980,
+       0xA9CE,
+       0xA9CF,
+       0xA9DA,
+       0xA9DE,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA5C,
+       0xAAC3,
+       0xAADB,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xE000,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBC2,
+       0xFBD3,
+       0xFD40,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFE,
+       0xFE00,
+       0xFE1A,
+       0xFE20,
+       0xFE2E,
+       0xFE30,
+       0xFE53,
+       0xFE54,
+       0xFE67,
+       0xFE68,
+       0xFE6C,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFEFF,
+       0xFF00,
+       0xFF01,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0xFFE0,
+       0xFFE7,
+       0xFFE8,
+       0xFFEF,
+       0xFFF9,
+       0xFFFE,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10100,
+       0x10103,
+       0x10107,
+       0x10134,
+       0x10137,
+       0x1018D,
+       0x10190,
+       0x1019C,
+       0x101A0,
+       0x101A1,
+       0x101D0,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102FC,
+       0x10300,
+       0x10324,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x1039F,
+       0x103C4,
+       0x103C8,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x1056F,
+       0x10570,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10857,
+       0x1089F,
+       0x108A7,
+       0x108B0,
+       0x10900,
+       0x1091C,
+       0x1091F,
+       0x1093A,
+       0x1093F,
+       0x10940,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A48,
+       0x10A50,
+       0x10A59,
+       0x10A60,
+       0x10AA0,
+       0x10AC0,
+       0x10AE7,
+       0x10AEB,
+       0x10AF7,
+       0x10B00,
+       0x10B36,
+       0x10B39,
+       0x10B56,
+       0x10B58,
+       0x10B73,
+       0x10B78,
+       0x10B92,
+       0x10B99,
+       0x10B9D,
+       0x10BA9,
+       0x10BB0,
+       0x10C00,
+       0x10C49,
+       0x10E60,
+       0x10E7F,
+       0x11000,
+       0x1104E,
+       0x11052,
+       0x11070,
+       0x1107F,
+       0x110C2,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11135,
+       0x11136,
+       0x11144,
+       0x11150,
+       0x11177,
+       0x11180,
+       0x111C9,
+       0x111CD,
+       0x111CE,
+       0x111D0,
+       0x111DB,
+       0x111E1,
+       0x111F5,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1123E,
+       0x112B0,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115CA,
+       0x11600,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118F3,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x12470,
+       0x12475,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16A6E,
+       0x16A70,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF6,
+       0x16B00,
+       0x16B46,
+       0x16B50,
+       0x16B5A,
+       0x16B5B,
+       0x16B62,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F8F,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9C,
+       0x1BCA4,
+       0x1D000,
+       0x1D0F6,
+       0x1D100,
+       0x1D127,
+       0x1D129,
+       0x1D1DE,
+       0x1D200,
+       0x1D246,
+       0x1D300,
+       0x1D357,
+       0x1D360,
+       0x1D372,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8C7,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1EEF0,
+       0x1EEF2,
+       0x1F000,
+       0x1F02C,
+       0x1F030,
+       0x1F094,
+       0x1F0A0,
+       0x1F0AF,
+       0x1F0B1,
+       0x1F0C0,
+       0x1F0C1,
+       0x1F0D0,
+       0x1F0D1,
+       0x1F0F6,
+       0x1F100,
+       0x1F10D,
+       0x1F110,
+       0x1F12F,
+       0x1F130,
+       0x1F16C,
+       0x1F170,
+       0x1F19B,
+       0x1F1E6,
+       0x1F203,
+       0x1F210,
+       0x1F23B,
+       0x1F240,
+       0x1F249,
+       0x1F250,
+       0x1F252,
+       0x1F300,
+       0x1F32D,
+       0x1F330,
+       0x1F37E,
+       0x1F380,
+       0x1F3CF,
+       0x1F3D4,
+       0x1F3F8,
+       0x1F400,
+       0x1F4FF,
+       0x1F500,
+       0x1F54B,
+       0x1F550,
+       0x1F57A,
+       0x1F57B,
+       0x1F5A4,
+       0x1F5A5,
+       0x1F643,
+       0x1F645,
+       0x1F6D0,
+       0x1F6E0,
+       0x1F6ED,
+       0x1F6F0,
+       0x1F6F4,
+       0x1F700,
+       0x1F774,
+       0x1F780,
+       0x1F7D5,
+       0x1F800,
+       0x1F80C,
+       0x1F810,
+       0x1F848,
+       0x1F850,
+       0x1F85A,
+       0x1F860,
+       0x1F888,
+       0x1F890,
+       0x1F8AE,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0001,
+       0xE0002,
+       0xE0020,
+       0xE0080,
+       0xE0100,
+       0xE01F0,
+       0xF0000,
+       0xFFFFE,
+       0x100000,
+       0x10FFFE
 };
 
 static const UV XPosixPunct_invlist[] = { /* for EBCDIC 1047 */
@@ -19095,315 +45525,315 @@ static const UV XPosixPunct_invlist[] = { /* for EBCDIC 1047 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       75,
-       81,
-       90,
-       98,
-       107,
-       112,
-       121,
-       128,
-       138,
-       140,
-       161,
-       162,
-       170,
-       172,
-       173,
-       174,
-       179,
-       180,
-       181,
-       183,
-       189,
-       190,
-       192,
-       193,
-       208,
-       209,
-       224,
-       225,
-       894,
-       895,
-       903,
-       904,
-       1370,
-       1376,
-       1417,
-       1419,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1523,
-       1525,
-       1545,
-       1547,
-       1548,
-       1550,
-       1563,
-       1564,
-       1566,
-       1568,
-       1642,
-       1646,
-       1748,
-       1749,
-       1792,
-       1806,
-       2039,
-       2042,
-       2096,
-       2111,
-       2142,
-       2143,
-       2404,
-       2406,
-       2416,
-       2417,
-       2800,
-       2801,
-       3572,
-       3573,
-       3663,
-       3664,
-       3674,
-       3676,
-       3844,
-       3859,
-       3860,
-       3861,
-       3898,
-       3902,
-       3973,
-       3974,
-       4048,
-       4053,
-       4057,
-       4059,
-       4170,
-       4176,
-       4347,
-       4348,
-       4960,
-       4969,
-       5120,
-       5121,
-       5741,
-       5743,
-       5787,
-       5789,
-       5867,
-       5870,
-       5941,
-       5943,
-       6100,
-       6103,
-       6104,
-       6107,
-       6144,
-       6155,
-       6468,
-       6470,
-       6686,
-       6688,
-       6816,
-       6823,
-       6824,
-       6830,
-       7002,
-       7009,
-       7164,
-       7168,
-       7227,
-       7232,
-       7294,
-       7296,
-       7360,
-       7368,
-       7379,
-       7380,
-       8208,
-       8232,
-       8240,
-       8260,
-       8261,
-       8274,
-       8275,
-       8287,
-       8317,
-       8319,
-       8333,
-       8335,
-       8968,
-       8972,
-       9001,
-       9003,
-       10088,
-       10102,
-       10181,
-       10183,
-       10214,
-       10224,
-       10627,
-       10649,
-       10712,
-       10716,
-       10748,
-       10750,
-       11513,
-       11517,
-       11518,
-       11520,
-       11632,
-       11633,
-       11776,
-       11823,
-       11824,
-       11843,
-       12289,
-       12292,
-       12296,
-       12306,
-       12308,
-       12320,
-       12336,
-       12337,
-       12349,
-       12350,
-       12448,
-       12449,
-       12539,
-       12540,
-       42238,
-       42240,
-       42509,
-       42512,
-       42611,
-       42612,
-       42622,
-       42623,
-       42738,
-       42744,
-       43124,
-       43128,
-       43214,
-       43216,
-       43256,
-       43259,
-       43310,
-       43312,
-       43359,
-       43360,
-       43457,
-       43470,
-       43486,
-       43488,
-       43612,
-       43616,
-       43742,
-       43744,
-       43760,
-       43762,
-       44011,
-       44012,
-       64830,
-       64832,
-       65040,
-       65050,
-       65072,
-       65107,
-       65108,
-       65122,
-       65123,
-       65124,
-       65128,
-       65129,
-       65130,
-       65132,
-       65281,
-       65284,
-       65285,
-       65291,
-       65292,
-       65296,
-       65306,
-       65308,
-       65311,
-       65313,
-       65339,
-       65342,
-       65343,
-       65344,
-       65371,
-       65372,
-       65373,
-       65374,
-       65375,
-       65382,
-       65792,
-       65795,
-       66463,
-       66464,
-       66512,
-       66513,
-       66927,
-       66928,
-       67671,
-       67672,
-       67871,
-       67872,
-       67903,
-       67904,
-       68176,
-       68185,
-       68223,
-       68224,
-       68336,
-       68343,
-       68409,
-       68416,
-       68505,
-       68509,
-       69703,
-       69710,
-       69819,
-       69821,
-       69822,
-       69826,
-       69952,
-       69956,
-       70004,
-       70006,
-       70085,
-       70089,
-       70093,
-       70094,
-       70200,
-       70206,
-       70854,
-       70855,
-       71105,
-       71114,
-       71233,
-       71236,
-       74864,
-       74869,
-       92782,
-       92784,
-       92917,
-       92918,
-       92983,
-       92988,
-       92996,
-       92997,
-       113823,
-       113824
+       0x0,
+       0x4B,
+       0x51,
+       0x5A,
+       0x62,
+       0x6B,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAD,
+       0xAE,
+       0xB3,
+       0xB4,
+       0xB5,
+       0xB7,
+       0xBD,
+       0xBE,
+       0xC0,
+       0xC1,
+       0xD0,
+       0xD1,
+       0xE0,
+       0xE1,
+       0x37E,
+       0x37F,
+       0x387,
+       0x388,
+       0x55A,
+       0x560,
+       0x589,
+       0x58B,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5F3,
+       0x5F5,
+       0x609,
+       0x60B,
+       0x60C,
+       0x60E,
+       0x61B,
+       0x61C,
+       0x61E,
+       0x620,
+       0x66A,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x700,
+       0x70E,
+       0x7F7,
+       0x7FA,
+       0x830,
+       0x83F,
+       0x85E,
+       0x85F,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0xAF0,
+       0xAF1,
+       0xDF4,
+       0xDF5,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xE5C,
+       0xF04,
+       0xF13,
+       0xF14,
+       0xF15,
+       0xF3A,
+       0xF3E,
+       0xF85,
+       0xF86,
+       0xFD0,
+       0xFD5,
+       0xFD9,
+       0xFDB,
+       0x104A,
+       0x1050,
+       0x10FB,
+       0x10FC,
+       0x1360,
+       0x1369,
+       0x1400,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x169B,
+       0x169D,
+       0x16EB,
+       0x16EE,
+       0x1735,
+       0x1737,
+       0x17D4,
+       0x17D7,
+       0x17D8,
+       0x17DB,
+       0x1800,
+       0x180B,
+       0x1944,
+       0x1946,
+       0x1A1E,
+       0x1A20,
+       0x1AA0,
+       0x1AA7,
+       0x1AA8,
+       0x1AAE,
+       0x1B5A,
+       0x1B61,
+       0x1BFC,
+       0x1C00,
+       0x1C3B,
+       0x1C40,
+       0x1C7E,
+       0x1C80,
+       0x1CC0,
+       0x1CC8,
+       0x1CD3,
+       0x1CD4,
+       0x2010,
+       0x2028,
+       0x2030,
+       0x2044,
+       0x2045,
+       0x2052,
+       0x2053,
+       0x205F,
+       0x207D,
+       0x207F,
+       0x208D,
+       0x208F,
+       0x2308,
+       0x230C,
+       0x2329,
+       0x232B,
+       0x2768,
+       0x2776,
+       0x27C5,
+       0x27C7,
+       0x27E6,
+       0x27F0,
+       0x2983,
+       0x2999,
+       0x29D8,
+       0x29DC,
+       0x29FC,
+       0x29FE,
+       0x2CF9,
+       0x2CFD,
+       0x2CFE,
+       0x2D00,
+       0x2D70,
+       0x2D71,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x2E43,
+       0x3001,
+       0x3004,
+       0x3008,
+       0x3012,
+       0x3014,
+       0x3020,
+       0x3030,
+       0x3031,
+       0x303D,
+       0x303E,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA6F2,
+       0xA6F8,
+       0xA874,
+       0xA878,
+       0xA8CE,
+       0xA8D0,
+       0xA8F8,
+       0xA8FB,
+       0xA92E,
+       0xA930,
+       0xA95F,
+       0xA960,
+       0xA9C1,
+       0xA9CE,
+       0xA9DE,
+       0xA9E0,
+       0xAA5C,
+       0xAA60,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xABEB,
+       0xABEC,
+       0xFD3E,
+       0xFD40,
+       0xFE10,
+       0xFE1A,
+       0xFE30,
+       0xFE53,
+       0xFE54,
+       0xFE62,
+       0xFE63,
+       0xFE64,
+       0xFE68,
+       0xFE69,
+       0xFE6A,
+       0xFE6C,
+       0xFF01,
+       0xFF04,
+       0xFF05,
+       0xFF0B,
+       0xFF0C,
+       0xFF10,
+       0xFF1A,
+       0xFF1C,
+       0xFF1F,
+       0xFF21,
+       0xFF3B,
+       0xFF3E,
+       0xFF3F,
+       0xFF40,
+       0xFF5B,
+       0xFF5C,
+       0xFF5D,
+       0xFF5E,
+       0xFF5F,
+       0xFF66,
+       0x10100,
+       0x10103,
+       0x1039F,
+       0x103A0,
+       0x103D0,
+       0x103D1,
+       0x1056F,
+       0x10570,
+       0x10857,
+       0x10858,
+       0x1091F,
+       0x10920,
+       0x1093F,
+       0x10940,
+       0x10A50,
+       0x10A59,
+       0x10A7F,
+       0x10A80,
+       0x10AF0,
+       0x10AF7,
+       0x10B39,
+       0x10B40,
+       0x10B99,
+       0x10B9D,
+       0x11047,
+       0x1104E,
+       0x110BB,
+       0x110BD,
+       0x110BE,
+       0x110C2,
+       0x11140,
+       0x11144,
+       0x11174,
+       0x11176,
+       0x111C5,
+       0x111C9,
+       0x111CD,
+       0x111CE,
+       0x11238,
+       0x1123E,
+       0x114C6,
+       0x114C7,
+       0x115C1,
+       0x115CA,
+       0x11641,
+       0x11644,
+       0x12470,
+       0x12475,
+       0x16A6E,
+       0x16A70,
+       0x16AF5,
+       0x16AF6,
+       0x16B37,
+       0x16B3C,
+       0x16B44,
+       0x16B45,
+       0x1BC9F,
+       0x1BCA0
 };
 
 static const UV XPosixSpace_invlist[] = { /* for EBCDIC 1047 */
@@ -19411,29 +45841,29 @@ static const UV XPosixSpace_invlist[] = { /* for EBCDIC 1047 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       5,
-       6,
-       11,
-       14,
-       21,
-       22,
-       37,
-       38,
-       64,
-       66,
-       5760,
-       5761,
-       8192,
-       8203,
-       8232,
-       8234,
-       8239,
-       8240,
-       8287,
-       8288,
-       12288,
-       12289
+       0x0,
+       0x5,
+       0x6,
+       0xB,
+       0xE,
+       0x15,
+       0x16,
+       0x25,
+       0x26,
+       0x40,
+       0x42,
+       0x1680,
+       0x1681,
+       0x2000,
+       0x200B,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x2030,
+       0x205F,
+       0x2060,
+       0x3000,
+       0x3001
 };
 
 static const UV XPosixUpper_invlist[] = { /* for EBCDIC 1047 */
@@ -19441,1279 +45871,1279 @@ static const UV XPosixUpper_invlist[] = { /* for EBCDIC 1047 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       98,
-       106,
-       113,
-       121,
-       128,
-       129,
-       158,
-       159,
-       172,
-       173,
-       174,
-       175,
-       186,
-       187,
-       193,
-       202,
-       209,
-       218,
-       226,
-       234,
-       235,
-       240,
-       251,
-       255,
-       256,
-       257,
-       258,
-       259,
-       260,
-       261,
-       262,
-       263,
-       264,
-       265,
-       266,
-       267,
-       268,
-       269,
-       270,
-       271,
-       272,
-       273,
-       274,
-       275,
-       276,
-       277,
-       278,
-       279,
-       280,
-       281,
-       282,
-       283,
-       284,
-       285,
-       286,
-       287,
-       288,
-       289,
-       290,
-       291,
-       292,
-       293,
-       294,
-       295,
-       296,
-       297,
-       298,
-       299,
-       300,
-       301,
-       302,
-       303,
-       304,
-       305,
-       306,
-       307,
-       308,
-       309,
-       310,
-       311,
-       313,
-       314,
-       315,
-       316,
-       317,
-       318,
-       319,
-       320,
-       321,
-       322,
-       323,
-       324,
-       325,
-       326,
-       327,
-       328,
-       330,
-       331,
-       332,
-       333,
-       334,
-       335,
-       336,
-       337,
-       338,
-       339,
-       340,
-       341,
-       342,
-       343,
-       344,
-       345,
-       346,
-       347,
-       348,
-       349,
-       350,
-       351,
-       352,
-       353,
-       354,
-       355,
-       356,
-       357,
-       358,
-       359,
-       360,
-       361,
-       362,
-       363,
-       364,
-       365,
-       366,
-       367,
-       368,
-       369,
-       370,
-       371,
-       372,
-       373,
-       374,
-       375,
-       376,
-       378,
-       379,
-       380,
-       381,
-       382,
-       385,
-       387,
-       388,
-       389,
-       390,
-       392,
-       393,
-       396,
-       398,
-       402,
-       403,
-       405,
-       406,
-       409,
-       412,
-       414,
-       415,
-       417,
-       418,
-       419,
-       420,
-       421,
-       422,
-       424,
-       425,
-       426,
-       428,
-       429,
-       430,
-       432,
-       433,
-       436,
-       437,
-       438,
-       439,
-       441,
-       444,
-       445,
-       452,
-       453,
-       455,
-       456,
-       458,
-       459,
-       461,
-       462,
-       463,
-       464,
-       465,
-       466,
-       467,
-       468,
-       469,
-       470,
-       471,
-       472,
-       473,
-       474,
-       475,
-       476,
-       478,
-       479,
-       480,
-       481,
-       482,
-       483,
-       484,
-       485,
-       486,
-       487,
-       488,
-       489,
-       490,
-       491,
-       492,
-       493,
-       494,
-       495,
-       497,
-       498,
-       500,
-       501,
-       502,
-       505,
-       506,
-       507,
-       508,
-       509,
-       510,
-       511,
-       512,
-       513,
-       514,
-       515,
-       516,
-       517,
-       518,
-       519,
-       520,
-       521,
-       522,
-       523,
-       524,
-       525,
-       526,
-       527,
-       528,
-       529,
-       530,
-       531,
-       532,
-       533,
-       534,
-       535,
-       536,
-       537,
-       538,
-       539,
-       540,
-       541,
-       542,
-       543,
-       544,
-       545,
-       546,
-       547,
-       548,
-       549,
-       550,
-       551,
-       552,
-       553,
-       554,
-       555,
-       556,
-       557,
-       558,
-       559,
-       560,
-       561,
-       562,
-       563,
-       570,
-       572,
-       573,
-       575,
-       577,
-       578,
-       579,
-       583,
-       584,
-       585,
-       586,
-       587,
-       588,
-       589,
-       590,
-       591,
-       880,
-       881,
-       882,
-       883,
-       886,
-       887,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       912,
-       913,
-       930,
-       931,
-       940,
-       975,
-       976,
-       978,
-       981,
-       984,
-       985,
-       986,
-       987,
-       988,
-       989,
-       990,
-       991,
-       992,
-       993,
-       994,
-       995,
-       996,
-       997,
-       998,
-       999,
-       1000,
-       1001,
-       1002,
-       1003,
-       1004,
-       1005,
-       1006,
-       1007,
-       1012,
-       1013,
-       1015,
-       1016,
-       1017,
-       1019,
-       1021,
-       1072,
-       1120,
-       1121,
-       1122,
-       1123,
-       1124,
-       1125,
-       1126,
-       1127,
-       1128,
-       1129,
-       1130,
-       1131,
-       1132,
-       1133,
-       1134,
-       1135,
-       1136,
-       1137,
-       1138,
-       1139,
-       1140,
-       1141,
-       1142,
-       1143,
-       1144,
-       1145,
-       1146,
-       1147,
-       1148,
-       1149,
-       1150,
-       1151,
-       1152,
-       1153,
-       1162,
-       1163,
-       1164,
-       1165,
-       1166,
-       1167,
-       1168,
-       1169,
-       1170,
-       1171,
-       1172,
-       1173,
-       1174,
-       1175,
-       1176,
-       1177,
-       1178,
-       1179,
-       1180,
-       1181,
-       1182,
-       1183,
-       1184,
-       1185,
-       1186,
-       1187,
-       1188,
-       1189,
-       1190,
-       1191,
-       1192,
-       1193,
-       1194,
-       1195,
-       1196,
-       1197,
-       1198,
-       1199,
-       1200,
-       1201,
-       1202,
-       1203,
-       1204,
-       1205,
-       1206,
-       1207,
-       1208,
-       1209,
-       1210,
-       1211,
-       1212,
-       1213,
-       1214,
-       1215,
-       1216,
-       1218,
-       1219,
-       1220,
-       1221,
-       1222,
-       1223,
-       1224,
-       1225,
-       1226,
-       1227,
-       1228,
-       1229,
-       1230,
-       1232,
-       1233,
-       1234,
-       1235,
-       1236,
-       1237,
-       1238,
-       1239,
-       1240,
-       1241,
-       1242,
-       1243,
-       1244,
-       1245,
-       1246,
-       1247,
-       1248,
-       1249,
-       1250,
-       1251,
-       1252,
-       1253,
-       1254,
-       1255,
-       1256,
-       1257,
-       1258,
-       1259,
-       1260,
-       1261,
-       1262,
-       1263,
-       1264,
-       1265,
-       1266,
-       1267,
-       1268,
-       1269,
-       1270,
-       1271,
-       1272,
-       1273,
-       1274,
-       1275,
-       1276,
-       1277,
-       1278,
-       1279,
-       1280,
-       1281,
-       1282,
-       1283,
-       1284,
-       1285,
-       1286,
-       1287,
-       1288,
-       1289,
-       1290,
-       1291,
-       1292,
-       1293,
-       1294,
-       1295,
-       1296,
-       1297,
-       1298,
-       1299,
-       1300,
-       1301,
-       1302,
-       1303,
-       1304,
-       1305,
-       1306,
-       1307,
-       1308,
-       1309,
-       1310,
-       1311,
-       1312,
-       1313,
-       1314,
-       1315,
-       1316,
-       1317,
-       1318,
-       1319,
-       1320,
-       1321,
-       1322,
-       1323,
-       1324,
-       1325,
-       1326,
-       1327,
-       1329,
-       1367,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       7680,
-       7681,
-       7682,
-       7683,
-       7684,
-       7685,
-       7686,
-       7687,
-       7688,
-       7689,
-       7690,
-       7691,
-       7692,
-       7693,
-       7694,
-       7695,
-       7696,
-       7697,
-       7698,
-       7699,
-       7700,
-       7701,
-       7702,
-       7703,
-       7704,
-       7705,
-       7706,
-       7707,
-       7708,
-       7709,
-       7710,
-       7711,
-       7712,
-       7713,
-       7714,
-       7715,
-       7716,
-       7717,
-       7718,
-       7719,
-       7720,
-       7721,
-       7722,
-       7723,
-       7724,
-       7725,
-       7726,
-       7727,
-       7728,
-       7729,
-       7730,
-       7731,
-       7732,
-       7733,
-       7734,
-       7735,
-       7736,
-       7737,
-       7738,
-       7739,
-       7740,
-       7741,
-       7742,
-       7743,
-       7744,
-       7745,
-       7746,
-       7747,
-       7748,
-       7749,
-       7750,
-       7751,
-       7752,
-       7753,
-       7754,
-       7755,
-       7756,
-       7757,
-       7758,
-       7759,
-       7760,
-       7761,
-       7762,
-       7763,
-       7764,
-       7765,
-       7766,
-       7767,
-       7768,
-       7769,
-       7770,
-       7771,
-       7772,
-       7773,
-       7774,
-       7775,
-       7776,
-       7777,
-       7778,
-       7779,
-       7780,
-       7781,
-       7782,
-       7783,
-       7784,
-       7785,
-       7786,
-       7787,
-       7788,
-       7789,
-       7790,
-       7791,
-       7792,
-       7793,
-       7794,
-       7795,
-       7796,
-       7797,
-       7798,
-       7799,
-       7800,
-       7801,
-       7802,
-       7803,
-       7804,
-       7805,
-       7806,
-       7807,
-       7808,
-       7809,
-       7810,
-       7811,
-       7812,
-       7813,
-       7814,
-       7815,
-       7816,
-       7817,
-       7818,
-       7819,
-       7820,
-       7821,
-       7822,
-       7823,
-       7824,
-       7825,
-       7826,
-       7827,
-       7828,
-       7829,
-       7838,
-       7839,
-       7840,
-       7841,
-       7842,
-       7843,
-       7844,
-       7845,
-       7846,
-       7847,
-       7848,
-       7849,
-       7850,
-       7851,
-       7852,
-       7853,
-       7854,
-       7855,
-       7856,
-       7857,
-       7858,
-       7859,
-       7860,
-       7861,
-       7862,
-       7863,
-       7864,
-       7865,
-       7866,
-       7867,
-       7868,
-       7869,
-       7870,
-       7871,
-       7872,
-       7873,
-       7874,
-       7875,
-       7876,
-       7877,
-       7878,
-       7879,
-       7880,
-       7881,
-       7882,
-       7883,
-       7884,
-       7885,
-       7886,
-       7887,
-       7888,
-       7889,
-       7890,
-       7891,
-       7892,
-       7893,
-       7894,
-       7895,
-       7896,
-       7897,
-       7898,
-       7899,
-       7900,
-       7901,
-       7902,
-       7903,
-       7904,
-       7905,
-       7906,
-       7907,
-       7908,
-       7909,
-       7910,
-       7911,
-       7912,
-       7913,
-       7914,
-       7915,
-       7916,
-       7917,
-       7918,
-       7919,
-       7920,
-       7921,
-       7922,
-       7923,
-       7924,
-       7925,
-       7926,
-       7927,
-       7928,
-       7929,
-       7930,
-       7931,
-       7932,
-       7933,
-       7934,
-       7935,
-       7944,
-       7952,
-       7960,
-       7966,
-       7976,
-       7984,
-       7992,
-       8000,
-       8008,
-       8014,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8032,
-       8040,
-       8048,
-       8120,
-       8124,
-       8136,
-       8140,
-       8152,
-       8156,
-       8168,
-       8173,
-       8184,
-       8188,
-       8450,
-       8451,
-       8455,
-       8456,
-       8459,
-       8462,
-       8464,
-       8467,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8496,
-       8500,
-       8510,
-       8512,
-       8517,
-       8518,
-       8544,
-       8560,
-       8579,
-       8580,
-       9398,
-       9424,
-       11264,
-       11311,
-       11360,
-       11361,
-       11362,
-       11365,
-       11367,
-       11368,
-       11369,
-       11370,
-       11371,
-       11372,
-       11373,
-       11377,
-       11378,
-       11379,
-       11381,
-       11382,
-       11390,
-       11393,
-       11394,
-       11395,
-       11396,
-       11397,
-       11398,
-       11399,
-       11400,
-       11401,
-       11402,
-       11403,
-       11404,
-       11405,
-       11406,
-       11407,
-       11408,
-       11409,
-       11410,
-       11411,
-       11412,
-       11413,
-       11414,
-       11415,
-       11416,
-       11417,
-       11418,
-       11419,
-       11420,
-       11421,
-       11422,
-       11423,
-       11424,
-       11425,
-       11426,
-       11427,
-       11428,
-       11429,
-       11430,
-       11431,
-       11432,
-       11433,
-       11434,
-       11435,
-       11436,
-       11437,
-       11438,
-       11439,
-       11440,
-       11441,
-       11442,
-       11443,
-       11444,
-       11445,
-       11446,
-       11447,
-       11448,
-       11449,
-       11450,
-       11451,
-       11452,
-       11453,
-       11454,
-       11455,
-       11456,
-       11457,
-       11458,
-       11459,
-       11460,
-       11461,
-       11462,
-       11463,
-       11464,
-       11465,
-       11466,
-       11467,
-       11468,
-       11469,
-       11470,
-       11471,
-       11472,
-       11473,
-       11474,
-       11475,
-       11476,
-       11477,
-       11478,
-       11479,
-       11480,
-       11481,
-       11482,
-       11483,
-       11484,
-       11485,
-       11486,
-       11487,
-       11488,
-       11489,
-       11490,
-       11491,
-       11499,
-       11500,
-       11501,
-       11502,
-       11506,
-       11507,
-       42560,
-       42561,
-       42562,
-       42563,
-       42564,
-       42565,
-       42566,
-       42567,
-       42568,
-       42569,
-       42570,
-       42571,
-       42572,
-       42573,
-       42574,
-       42575,
-       42576,
-       42577,
-       42578,
-       42579,
-       42580,
-       42581,
-       42582,
-       42583,
-       42584,
-       42585,
-       42586,
-       42587,
-       42588,
-       42589,
-       42590,
-       42591,
-       42592,
-       42593,
-       42594,
-       42595,
-       42596,
-       42597,
-       42598,
-       42599,
-       42600,
-       42601,
-       42602,
-       42603,
-       42604,
-       42605,
-       42624,
-       42625,
-       42626,
-       42627,
-       42628,
-       42629,
-       42630,
-       42631,
-       42632,
-       42633,
-       42634,
-       42635,
-       42636,
-       42637,
-       42638,
-       42639,
-       42640,
-       42641,
-       42642,
-       42643,
-       42644,
-       42645,
-       42646,
-       42647,
-       42648,
-       42649,
-       42650,
-       42651,
-       42786,
-       42787,
-       42788,
-       42789,
-       42790,
-       42791,
-       42792,
-       42793,
-       42794,
-       42795,
-       42796,
-       42797,
-       42798,
-       42799,
-       42802,
-       42803,
-       42804,
-       42805,
-       42806,
-       42807,
-       42808,
-       42809,
-       42810,
-       42811,
-       42812,
-       42813,
-       42814,
-       42815,
-       42816,
-       42817,
-       42818,
-       42819,
-       42820,
-       42821,
-       42822,
-       42823,
-       42824,
-       42825,
-       42826,
-       42827,
-       42828,
-       42829,
-       42830,
-       42831,
-       42832,
-       42833,
-       42834,
-       42835,
-       42836,
-       42837,
-       42838,
-       42839,
-       42840,
-       42841,
-       42842,
-       42843,
-       42844,
-       42845,
-       42846,
-       42847,
-       42848,
-       42849,
-       42850,
-       42851,
-       42852,
-       42853,
-       42854,
-       42855,
-       42856,
-       42857,
-       42858,
-       42859,
-       42860,
-       42861,
-       42862,
-       42863,
-       42873,
-       42874,
-       42875,
-       42876,
-       42877,
-       42879,
-       42880,
-       42881,
-       42882,
-       42883,
-       42884,
-       42885,
-       42886,
-       42887,
-       42891,
-       42892,
-       42893,
-       42894,
-       42896,
-       42897,
-       42898,
-       42899,
-       42902,
-       42903,
-       42904,
-       42905,
-       42906,
-       42907,
-       42908,
-       42909,
-       42910,
-       42911,
-       42912,
-       42913,
-       42914,
-       42915,
-       42916,
-       42917,
-       42918,
-       42919,
-       42920,
-       42921,
-       42922,
-       42926,
-       42928,
-       42930,
-       65313,
-       65339,
-       66560,
-       66600,
-       71840,
-       71872,
-       119808,
-       119834,
-       119860,
-       119886,
-       119912,
-       119938,
-       119964,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119990,
-       120016,
-       120042,
-       120068,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120120,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120172,
-       120198,
-       120224,
-       120250,
-       120276,
-       120302,
-       120328,
-       120354,
-       120380,
-       120406,
-       120432,
-       120458,
-       120488,
-       120513,
-       120546,
-       120571,
-       120604,
-       120629,
-       120662,
-       120687,
-       120720,
-       120745,
-       120778,
-       120779,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370
+       0x0,
+       0x62,
+       0x6A,
+       0x71,
+       0x79,
+       0x80,
+       0x81,
+       0x9E,
+       0x9F,
+       0xAC,
+       0xAD,
+       0xAE,
+       0xAF,
+       0xBA,
+       0xBB,
+       0xC1,
+       0xCA,
+       0xD1,
+       0xDA,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFB,
+       0xFF,
+       0x100,
+       0x101,
+       0x102,
+       0x103,
+       0x104,
+       0x105,
+       0x106,
+       0x107,
+       0x108,
+       0x109,
+       0x10A,
+       0x10B,
+       0x10C,
+       0x10D,
+       0x10E,
+       0x10F,
+       0x110,
+       0x111,
+       0x112,
+       0x113,
+       0x114,
+       0x115,
+       0x116,
+       0x117,
+       0x118,
+       0x119,
+       0x11A,
+       0x11B,
+       0x11C,
+       0x11D,
+       0x11E,
+       0x11F,
+       0x120,
+       0x121,
+       0x122,
+       0x123,
+       0x124,
+       0x125,
+       0x126,
+       0x127,
+       0x128,
+       0x129,
+       0x12A,
+       0x12B,
+       0x12C,
+       0x12D,
+       0x12E,
+       0x12F,
+       0x130,
+       0x131,
+       0x132,
+       0x133,
+       0x134,
+       0x135,
+       0x136,
+       0x137,
+       0x139,
+       0x13A,
+       0x13B,
+       0x13C,
+       0x13D,
+       0x13E,
+       0x13F,
+       0x140,
+       0x141,
+       0x142,
+       0x143,
+       0x144,
+       0x145,
+       0x146,
+       0x147,
+       0x148,
+       0x14A,
+       0x14B,
+       0x14C,
+       0x14D,
+       0x14E,
+       0x14F,
+       0x150,
+       0x151,
+       0x152,
+       0x153,
+       0x154,
+       0x155,
+       0x156,
+       0x157,
+       0x158,
+       0x159,
+       0x15A,
+       0x15B,
+       0x15C,
+       0x15D,
+       0x15E,
+       0x15F,
+       0x160,
+       0x161,
+       0x162,
+       0x163,
+       0x164,
+       0x165,
+       0x166,
+       0x167,
+       0x168,
+       0x169,
+       0x16A,
+       0x16B,
+       0x16C,
+       0x16D,
+       0x16E,
+       0x16F,
+       0x170,
+       0x171,
+       0x172,
+       0x173,
+       0x174,
+       0x175,
+       0x176,
+       0x177,
+       0x178,
+       0x17A,
+       0x17B,
+       0x17C,
+       0x17D,
+       0x17E,
+       0x181,
+       0x183,
+       0x184,
+       0x185,
+       0x186,
+       0x188,
+       0x189,
+       0x18C,
+       0x18E,
+       0x192,
+       0x193,
+       0x195,
+       0x196,
+       0x199,
+       0x19C,
+       0x19E,
+       0x19F,
+       0x1A1,
+       0x1A2,
+       0x1A3,
+       0x1A4,
+       0x1A5,
+       0x1A6,
+       0x1A8,
+       0x1A9,
+       0x1AA,
+       0x1AC,
+       0x1AD,
+       0x1AE,
+       0x1B0,
+       0x1B1,
+       0x1B4,
+       0x1B5,
+       0x1B6,
+       0x1B7,
+       0x1B9,
+       0x1BC,
+       0x1BD,
+       0x1C4,
+       0x1C5,
+       0x1C7,
+       0x1C8,
+       0x1CA,
+       0x1CB,
+       0x1CD,
+       0x1CE,
+       0x1CF,
+       0x1D0,
+       0x1D1,
+       0x1D2,
+       0x1D3,
+       0x1D4,
+       0x1D5,
+       0x1D6,
+       0x1D7,
+       0x1D8,
+       0x1D9,
+       0x1DA,
+       0x1DB,
+       0x1DC,
+       0x1DE,
+       0x1DF,
+       0x1E0,
+       0x1E1,
+       0x1E2,
+       0x1E3,
+       0x1E4,
+       0x1E5,
+       0x1E6,
+       0x1E7,
+       0x1E8,
+       0x1E9,
+       0x1EA,
+       0x1EB,
+       0x1EC,
+       0x1ED,
+       0x1EE,
+       0x1EF,
+       0x1F1,
+       0x1F2,
+       0x1F4,
+       0x1F5,
+       0x1F6,
+       0x1F9,
+       0x1FA,
+       0x1FB,
+       0x1FC,
+       0x1FD,
+       0x1FE,
+       0x1FF,
+       0x200,
+       0x201,
+       0x202,
+       0x203,
+       0x204,
+       0x205,
+       0x206,
+       0x207,
+       0x208,
+       0x209,
+       0x20A,
+       0x20B,
+       0x20C,
+       0x20D,
+       0x20E,
+       0x20F,
+       0x210,
+       0x211,
+       0x212,
+       0x213,
+       0x214,
+       0x215,
+       0x216,
+       0x217,
+       0x218,
+       0x219,
+       0x21A,
+       0x21B,
+       0x21C,
+       0x21D,
+       0x21E,
+       0x21F,
+       0x220,
+       0x221,
+       0x222,
+       0x223,
+       0x224,
+       0x225,
+       0x226,
+       0x227,
+       0x228,
+       0x229,
+       0x22A,
+       0x22B,
+       0x22C,
+       0x22D,
+       0x22E,
+       0x22F,
+       0x230,
+       0x231,
+       0x232,
+       0x233,
+       0x23A,
+       0x23C,
+       0x23D,
+       0x23F,
+       0x241,
+       0x242,
+       0x243,
+       0x247,
+       0x248,
+       0x249,
+       0x24A,
+       0x24B,
+       0x24C,
+       0x24D,
+       0x24E,
+       0x24F,
+       0x370,
+       0x371,
+       0x372,
+       0x373,
+       0x376,
+       0x377,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x390,
+       0x391,
+       0x3A2,
+       0x3A3,
+       0x3AC,
+       0x3CF,
+       0x3D0,
+       0x3D2,
+       0x3D5,
+       0x3D8,
+       0x3D9,
+       0x3DA,
+       0x3DB,
+       0x3DC,
+       0x3DD,
+       0x3DE,
+       0x3DF,
+       0x3E0,
+       0x3E1,
+       0x3E2,
+       0x3E3,
+       0x3E4,
+       0x3E5,
+       0x3E6,
+       0x3E7,
+       0x3E8,
+       0x3E9,
+       0x3EA,
+       0x3EB,
+       0x3EC,
+       0x3ED,
+       0x3EE,
+       0x3EF,
+       0x3F4,
+       0x3F5,
+       0x3F7,
+       0x3F8,
+       0x3F9,
+       0x3FB,
+       0x3FD,
+       0x430,
+       0x460,
+       0x461,
+       0x462,
+       0x463,
+       0x464,
+       0x465,
+       0x466,
+       0x467,
+       0x468,
+       0x469,
+       0x46A,
+       0x46B,
+       0x46C,
+       0x46D,
+       0x46E,
+       0x46F,
+       0x470,
+       0x471,
+       0x472,
+       0x473,
+       0x474,
+       0x475,
+       0x476,
+       0x477,
+       0x478,
+       0x479,
+       0x47A,
+       0x47B,
+       0x47C,
+       0x47D,
+       0x47E,
+       0x47F,
+       0x480,
+       0x481,
+       0x48A,
+       0x48B,
+       0x48C,
+       0x48D,
+       0x48E,
+       0x48F,
+       0x490,
+       0x491,
+       0x492,
+       0x493,
+       0x494,
+       0x495,
+       0x496,
+       0x497,
+       0x498,
+       0x499,
+       0x49A,
+       0x49B,
+       0x49C,
+       0x49D,
+       0x49E,
+       0x49F,
+       0x4A0,
+       0x4A1,
+       0x4A2,
+       0x4A3,
+       0x4A4,
+       0x4A5,
+       0x4A6,
+       0x4A7,
+       0x4A8,
+       0x4A9,
+       0x4AA,
+       0x4AB,
+       0x4AC,
+       0x4AD,
+       0x4AE,
+       0x4AF,
+       0x4B0,
+       0x4B1,
+       0x4B2,
+       0x4B3,
+       0x4B4,
+       0x4B5,
+       0x4B6,
+       0x4B7,
+       0x4B8,
+       0x4B9,
+       0x4BA,
+       0x4BB,
+       0x4BC,
+       0x4BD,
+       0x4BE,
+       0x4BF,
+       0x4C0,
+       0x4C2,
+       0x4C3,
+       0x4C4,
+       0x4C5,
+       0x4C6,
+       0x4C7,
+       0x4C8,
+       0x4C9,
+       0x4CA,
+       0x4CB,
+       0x4CC,
+       0x4CD,
+       0x4CE,
+       0x4D0,
+       0x4D1,
+       0x4D2,
+       0x4D3,
+       0x4D4,
+       0x4D5,
+       0x4D6,
+       0x4D7,
+       0x4D8,
+       0x4D9,
+       0x4DA,
+       0x4DB,
+       0x4DC,
+       0x4DD,
+       0x4DE,
+       0x4DF,
+       0x4E0,
+       0x4E1,
+       0x4E2,
+       0x4E3,
+       0x4E4,
+       0x4E5,
+       0x4E6,
+       0x4E7,
+       0x4E8,
+       0x4E9,
+       0x4EA,
+       0x4EB,
+       0x4EC,
+       0x4ED,
+       0x4EE,
+       0x4EF,
+       0x4F0,
+       0x4F1,
+       0x4F2,
+       0x4F3,
+       0x4F4,
+       0x4F5,
+       0x4F6,
+       0x4F7,
+       0x4F8,
+       0x4F9,
+       0x4FA,
+       0x4FB,
+       0x4FC,
+       0x4FD,
+       0x4FE,
+       0x4FF,
+       0x500,
+       0x501,
+       0x502,
+       0x503,
+       0x504,
+       0x505,
+       0x506,
+       0x507,
+       0x508,
+       0x509,
+       0x50A,
+       0x50B,
+       0x50C,
+       0x50D,
+       0x50E,
+       0x50F,
+       0x510,
+       0x511,
+       0x512,
+       0x513,
+       0x514,
+       0x515,
+       0x516,
+       0x517,
+       0x518,
+       0x519,
+       0x51A,
+       0x51B,
+       0x51C,
+       0x51D,
+       0x51E,
+       0x51F,
+       0x520,
+       0x521,
+       0x522,
+       0x523,
+       0x524,
+       0x525,
+       0x526,
+       0x527,
+       0x528,
+       0x529,
+       0x52A,
+       0x52B,
+       0x52C,
+       0x52D,
+       0x52E,
+       0x52F,
+       0x531,
+       0x557,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x1E00,
+       0x1E01,
+       0x1E02,
+       0x1E03,
+       0x1E04,
+       0x1E05,
+       0x1E06,
+       0x1E07,
+       0x1E08,
+       0x1E09,
+       0x1E0A,
+       0x1E0B,
+       0x1E0C,
+       0x1E0D,
+       0x1E0E,
+       0x1E0F,
+       0x1E10,
+       0x1E11,
+       0x1E12,
+       0x1E13,
+       0x1E14,
+       0x1E15,
+       0x1E16,
+       0x1E17,
+       0x1E18,
+       0x1E19,
+       0x1E1A,
+       0x1E1B,
+       0x1E1C,
+       0x1E1D,
+       0x1E1E,
+       0x1E1F,
+       0x1E20,
+       0x1E21,
+       0x1E22,
+       0x1E23,
+       0x1E24,
+       0x1E25,
+       0x1E26,
+       0x1E27,
+       0x1E28,
+       0x1E29,
+       0x1E2A,
+       0x1E2B,
+       0x1E2C,
+       0x1E2D,
+       0x1E2E,
+       0x1E2F,
+       0x1E30,
+       0x1E31,
+       0x1E32,
+       0x1E33,
+       0x1E34,
+       0x1E35,
+       0x1E36,
+       0x1E37,
+       0x1E38,
+       0x1E39,
+       0x1E3A,
+       0x1E3B,
+       0x1E3C,
+       0x1E3D,
+       0x1E3E,
+       0x1E3F,
+       0x1E40,
+       0x1E41,
+       0x1E42,
+       0x1E43,
+       0x1E44,
+       0x1E45,
+       0x1E46,
+       0x1E47,
+       0x1E48,
+       0x1E49,
+       0x1E4A,
+       0x1E4B,
+       0x1E4C,
+       0x1E4D,
+       0x1E4E,
+       0x1E4F,
+       0x1E50,
+       0x1E51,
+       0x1E52,
+       0x1E53,
+       0x1E54,
+       0x1E55,
+       0x1E56,
+       0x1E57,
+       0x1E58,
+       0x1E59,
+       0x1E5A,
+       0x1E5B,
+       0x1E5C,
+       0x1E5D,
+       0x1E5E,
+       0x1E5F,
+       0x1E60,
+       0x1E61,
+       0x1E62,
+       0x1E63,
+       0x1E64,
+       0x1E65,
+       0x1E66,
+       0x1E67,
+       0x1E68,
+       0x1E69,
+       0x1E6A,
+       0x1E6B,
+       0x1E6C,
+       0x1E6D,
+       0x1E6E,
+       0x1E6F,
+       0x1E70,
+       0x1E71,
+       0x1E72,
+       0x1E73,
+       0x1E74,
+       0x1E75,
+       0x1E76,
+       0x1E77,
+       0x1E78,
+       0x1E79,
+       0x1E7A,
+       0x1E7B,
+       0x1E7C,
+       0x1E7D,
+       0x1E7E,
+       0x1E7F,
+       0x1E80,
+       0x1E81,
+       0x1E82,
+       0x1E83,
+       0x1E84,
+       0x1E85,
+       0x1E86,
+       0x1E87,
+       0x1E88,
+       0x1E89,
+       0x1E8A,
+       0x1E8B,
+       0x1E8C,
+       0x1E8D,
+       0x1E8E,
+       0x1E8F,
+       0x1E90,
+       0x1E91,
+       0x1E92,
+       0x1E93,
+       0x1E94,
+       0x1E95,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1EA1,
+       0x1EA2,
+       0x1EA3,
+       0x1EA4,
+       0x1EA5,
+       0x1EA6,
+       0x1EA7,
+       0x1EA8,
+       0x1EA9,
+       0x1EAA,
+       0x1EAB,
+       0x1EAC,
+       0x1EAD,
+       0x1EAE,
+       0x1EAF,
+       0x1EB0,
+       0x1EB1,
+       0x1EB2,
+       0x1EB3,
+       0x1EB4,
+       0x1EB5,
+       0x1EB6,
+       0x1EB7,
+       0x1EB8,
+       0x1EB9,
+       0x1EBA,
+       0x1EBB,
+       0x1EBC,
+       0x1EBD,
+       0x1EBE,
+       0x1EBF,
+       0x1EC0,
+       0x1EC1,
+       0x1EC2,
+       0x1EC3,
+       0x1EC4,
+       0x1EC5,
+       0x1EC6,
+       0x1EC7,
+       0x1EC8,
+       0x1EC9,
+       0x1ECA,
+       0x1ECB,
+       0x1ECC,
+       0x1ECD,
+       0x1ECE,
+       0x1ECF,
+       0x1ED0,
+       0x1ED1,
+       0x1ED2,
+       0x1ED3,
+       0x1ED4,
+       0x1ED5,
+       0x1ED6,
+       0x1ED7,
+       0x1ED8,
+       0x1ED9,
+       0x1EDA,
+       0x1EDB,
+       0x1EDC,
+       0x1EDD,
+       0x1EDE,
+       0x1EDF,
+       0x1EE0,
+       0x1EE1,
+       0x1EE2,
+       0x1EE3,
+       0x1EE4,
+       0x1EE5,
+       0x1EE6,
+       0x1EE7,
+       0x1EE8,
+       0x1EE9,
+       0x1EEA,
+       0x1EEB,
+       0x1EEC,
+       0x1EED,
+       0x1EEE,
+       0x1EEF,
+       0x1EF0,
+       0x1EF1,
+       0x1EF2,
+       0x1EF3,
+       0x1EF4,
+       0x1EF5,
+       0x1EF6,
+       0x1EF7,
+       0x1EF8,
+       0x1EF9,
+       0x1EFA,
+       0x1EFB,
+       0x1EFC,
+       0x1EFD,
+       0x1EFE,
+       0x1EFF,
+       0x1F08,
+       0x1F10,
+       0x1F18,
+       0x1F1E,
+       0x1F28,
+       0x1F30,
+       0x1F38,
+       0x1F40,
+       0x1F48,
+       0x1F4E,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1FB8,
+       0x1FBC,
+       0x1FC8,
+       0x1FCC,
+       0x1FD8,
+       0x1FDC,
+       0x1FE8,
+       0x1FED,
+       0x1FF8,
+       0x1FFC,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210B,
+       0x210E,
+       0x2110,
+       0x2113,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x2130,
+       0x2134,
+       0x213E,
+       0x2140,
+       0x2145,
+       0x2146,
+       0x2160,
+       0x2170,
+       0x2183,
+       0x2184,
+       0x24B6,
+       0x24D0,
+       0x2C00,
+       0x2C2F,
+       0x2C60,
+       0x2C61,
+       0x2C62,
+       0x2C65,
+       0x2C67,
+       0x2C68,
+       0x2C69,
+       0x2C6A,
+       0x2C6B,
+       0x2C6C,
+       0x2C6D,
+       0x2C71,
+       0x2C72,
+       0x2C73,
+       0x2C75,
+       0x2C76,
+       0x2C7E,
+       0x2C81,
+       0x2C82,
+       0x2C83,
+       0x2C84,
+       0x2C85,
+       0x2C86,
+       0x2C87,
+       0x2C88,
+       0x2C89,
+       0x2C8A,
+       0x2C8B,
+       0x2C8C,
+       0x2C8D,
+       0x2C8E,
+       0x2C8F,
+       0x2C90,
+       0x2C91,
+       0x2C92,
+       0x2C93,
+       0x2C94,
+       0x2C95,
+       0x2C96,
+       0x2C97,
+       0x2C98,
+       0x2C99,
+       0x2C9A,
+       0x2C9B,
+       0x2C9C,
+       0x2C9D,
+       0x2C9E,
+       0x2C9F,
+       0x2CA0,
+       0x2CA1,
+       0x2CA2,
+       0x2CA3,
+       0x2CA4,
+       0x2CA5,
+       0x2CA6,
+       0x2CA7,
+       0x2CA8,
+       0x2CA9,
+       0x2CAA,
+       0x2CAB,
+       0x2CAC,
+       0x2CAD,
+       0x2CAE,
+       0x2CAF,
+       0x2CB0,
+       0x2CB1,
+       0x2CB2,
+       0x2CB3,
+       0x2CB4,
+       0x2CB5,
+       0x2CB6,
+       0x2CB7,
+       0x2CB8,
+       0x2CB9,
+       0x2CBA,
+       0x2CBB,
+       0x2CBC,
+       0x2CBD,
+       0x2CBE,
+       0x2CBF,
+       0x2CC0,
+       0x2CC1,
+       0x2CC2,
+       0x2CC3,
+       0x2CC4,
+       0x2CC5,
+       0x2CC6,
+       0x2CC7,
+       0x2CC8,
+       0x2CC9,
+       0x2CCA,
+       0x2CCB,
+       0x2CCC,
+       0x2CCD,
+       0x2CCE,
+       0x2CCF,
+       0x2CD0,
+       0x2CD1,
+       0x2CD2,
+       0x2CD3,
+       0x2CD4,
+       0x2CD5,
+       0x2CD6,
+       0x2CD7,
+       0x2CD8,
+       0x2CD9,
+       0x2CDA,
+       0x2CDB,
+       0x2CDC,
+       0x2CDD,
+       0x2CDE,
+       0x2CDF,
+       0x2CE0,
+       0x2CE1,
+       0x2CE2,
+       0x2CE3,
+       0x2CEB,
+       0x2CEC,
+       0x2CED,
+       0x2CEE,
+       0x2CF2,
+       0x2CF3,
+       0xA640,
+       0xA641,
+       0xA642,
+       0xA643,
+       0xA644,
+       0xA645,
+       0xA646,
+       0xA647,
+       0xA648,
+       0xA649,
+       0xA64A,
+       0xA64B,
+       0xA64C,
+       0xA64D,
+       0xA64E,
+       0xA64F,
+       0xA650,
+       0xA651,
+       0xA652,
+       0xA653,
+       0xA654,
+       0xA655,
+       0xA656,
+       0xA657,
+       0xA658,
+       0xA659,
+       0xA65A,
+       0xA65B,
+       0xA65C,
+       0xA65D,
+       0xA65E,
+       0xA65F,
+       0xA660,
+       0xA661,
+       0xA662,
+       0xA663,
+       0xA664,
+       0xA665,
+       0xA666,
+       0xA667,
+       0xA668,
+       0xA669,
+       0xA66A,
+       0xA66B,
+       0xA66C,
+       0xA66D,
+       0xA680,
+       0xA681,
+       0xA682,
+       0xA683,
+       0xA684,
+       0xA685,
+       0xA686,
+       0xA687,
+       0xA688,
+       0xA689,
+       0xA68A,
+       0xA68B,
+       0xA68C,
+       0xA68D,
+       0xA68E,
+       0xA68F,
+       0xA690,
+       0xA691,
+       0xA692,
+       0xA693,
+       0xA694,
+       0xA695,
+       0xA696,
+       0xA697,
+       0xA698,
+       0xA699,
+       0xA69A,
+       0xA69B,
+       0xA722,
+       0xA723,
+       0xA724,
+       0xA725,
+       0xA726,
+       0xA727,
+       0xA728,
+       0xA729,
+       0xA72A,
+       0xA72B,
+       0xA72C,
+       0xA72D,
+       0xA72E,
+       0xA72F,
+       0xA732,
+       0xA733,
+       0xA734,
+       0xA735,
+       0xA736,
+       0xA737,
+       0xA738,
+       0xA739,
+       0xA73A,
+       0xA73B,
+       0xA73C,
+       0xA73D,
+       0xA73E,
+       0xA73F,
+       0xA740,
+       0xA741,
+       0xA742,
+       0xA743,
+       0xA744,
+       0xA745,
+       0xA746,
+       0xA747,
+       0xA748,
+       0xA749,
+       0xA74A,
+       0xA74B,
+       0xA74C,
+       0xA74D,
+       0xA74E,
+       0xA74F,
+       0xA750,
+       0xA751,
+       0xA752,
+       0xA753,
+       0xA754,
+       0xA755,
+       0xA756,
+       0xA757,
+       0xA758,
+       0xA759,
+       0xA75A,
+       0xA75B,
+       0xA75C,
+       0xA75D,
+       0xA75E,
+       0xA75F,
+       0xA760,
+       0xA761,
+       0xA762,
+       0xA763,
+       0xA764,
+       0xA765,
+       0xA766,
+       0xA767,
+       0xA768,
+       0xA769,
+       0xA76A,
+       0xA76B,
+       0xA76C,
+       0xA76D,
+       0xA76E,
+       0xA76F,
+       0xA779,
+       0xA77A,
+       0xA77B,
+       0xA77C,
+       0xA77D,
+       0xA77F,
+       0xA780,
+       0xA781,
+       0xA782,
+       0xA783,
+       0xA784,
+       0xA785,
+       0xA786,
+       0xA787,
+       0xA78B,
+       0xA78C,
+       0xA78D,
+       0xA78E,
+       0xA790,
+       0xA791,
+       0xA792,
+       0xA793,
+       0xA796,
+       0xA797,
+       0xA798,
+       0xA799,
+       0xA79A,
+       0xA79B,
+       0xA79C,
+       0xA79D,
+       0xA79E,
+       0xA79F,
+       0xA7A0,
+       0xA7A1,
+       0xA7A2,
+       0xA7A3,
+       0xA7A4,
+       0xA7A5,
+       0xA7A6,
+       0xA7A7,
+       0xA7A8,
+       0xA7A9,
+       0xA7AA,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xFF21,
+       0xFF3B,
+       0x10400,
+       0x10428,
+       0x118A0,
+       0x118C0,
+       0x1D400,
+       0x1D41A,
+       0x1D434,
+       0x1D44E,
+       0x1D468,
+       0x1D482,
+       0x1D49C,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4B6,
+       0x1D4D0,
+       0x1D4EA,
+       0x1D504,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D538,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D56C,
+       0x1D586,
+       0x1D5A0,
+       0x1D5BA,
+       0x1D5D4,
+       0x1D5EE,
+       0x1D608,
+       0x1D622,
+       0x1D63C,
+       0x1D656,
+       0x1D670,
+       0x1D68A,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6E2,
+       0x1D6FB,
+       0x1D71C,
+       0x1D735,
+       0x1D756,
+       0x1D76F,
+       0x1D790,
+       0x1D7A9,
+       0x1D7CA,
+       0x1D7CB,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A
 };
 
 static const UV XPosixWord_invlist[] = { /* for EBCDIC 1047 */
@@ -20721,1291 +47151,1291 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 1047 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       109,
-       110,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       173,
-       174,
-       175,
-       186,
-       187,
-       193,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       224,
-       226,
-       234,
-       235,
-       250,
-       251,
-       255,
-       256,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       768,
-       885,
-       886,
-       888,
-       890,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1155,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1425,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1480,
-       1488,
-       1515,
-       1520,
-       1523,
-       1552,
-       1563,
-       1568,
-       1642,
-       1646,
-       1748,
-       1749,
-       1757,
-       1759,
-       1769,
-       1770,
-       1789,
-       1791,
-       1792,
-       1808,
-       1867,
-       1869,
-       1970,
-       1984,
-       2038,
-       2042,
-       2043,
-       2048,
-       2094,
-       2112,
-       2140,
-       2208,
-       2227,
-       2276,
-       2404,
-       2406,
-       2416,
-       2417,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2492,
-       2501,
-       2503,
-       2505,
-       2507,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2546,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2620,
-       2621,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2638,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2748,
-       2758,
-       2759,
-       2762,
-       2763,
-       2766,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2800,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2876,
-       2885,
-       2887,
-       2889,
-       2891,
-       2894,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2928,
-       2929,
-       2930,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3022,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3056,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3150,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3260,
-       3269,
-       3270,
-       3273,
-       3274,
-       3278,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3440,
-       3450,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3530,
-       3531,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3572,
-       3585,
-       3643,
-       3648,
-       3663,
-       3664,
-       3674,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3784,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3841,
-       3864,
-       3866,
-       3872,
-       3882,
-       3893,
-       3894,
-       3895,
-       3896,
-       3897,
-       3898,
-       3902,
-       3912,
-       3913,
-       3949,
-       3953,
-       3973,
-       3974,
-       3992,
-       3993,
-       4029,
-       4038,
-       4039,
-       4096,
-       4170,
-       4176,
-       4254,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4957,
-       4960,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5909,
-       5920,
-       5941,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6100,
-       6103,
-       6104,
-       6108,
-       6110,
-       6112,
-       6122,
-       6155,
-       6158,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6460,
-       6470,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6618,
-       6656,
-       6684,
-       6688,
-       6751,
-       6752,
-       6781,
-       6783,
-       6794,
-       6800,
-       6810,
-       6823,
-       6824,
-       6832,
-       6847,
-       6912,
-       6988,
-       6992,
-       7002,
-       7019,
-       7028,
-       7040,
-       7156,
-       7168,
-       7224,
-       7232,
-       7242,
-       7245,
-       7294,
-       7376,
-       7379,
-       7380,
-       7415,
-       7416,
-       7418,
-       7424,
-       7670,
-       7676,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8204,
-       8206,
-       8255,
-       8257,
-       8276,
-       8277,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8400,
-       8433,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11647,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11776,
-       11823,
-       11824,
-       12293,
-       12296,
-       12321,
-       12336,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12441,
-       12443,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42540,
-       42560,
-       42611,
-       42612,
-       42622,
-       42623,
-       42654,
-       42655,
-       42738,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43048,
-       43072,
-       43124,
-       43136,
-       43205,
-       43216,
-       43226,
-       43232,
-       43256,
-       43259,
-       43260,
-       43264,
-       43310,
-       43312,
-       43348,
-       43360,
-       43389,
-       43392,
-       43457,
-       43471,
-       43482,
-       43488,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43616,
-       43639,
-       43642,
-       43715,
-       43739,
-       43742,
-       43744,
-       43760,
-       43762,
-       43767,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44011,
-       44012,
-       44014,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65020,
-       65024,
-       65040,
-       65056,
-       65070,
-       65075,
-       65077,
-       65101,
-       65104,
-       65136,
-       65141,
-       65142,
-       65277,
-       65296,
-       65306,
-       65313,
-       65339,
-       65343,
-       65344,
-       65345,
-       65371,
-       65382,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66045,
-       66046,
-       66176,
-       66205,
-       66208,
-       66257,
-       66272,
-       66273,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68152,
-       68155,
-       68159,
-       68160,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68327,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69632,
-       69703,
-       69734,
-       69744,
-       69759,
-       69819,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69941,
-       69942,
-       69952,
-       69968,
-       70004,
-       70006,
-       70007,
-       70016,
-       70085,
-       70096,
-       70107,
-       70144,
-       70162,
-       70163,
-       70200,
-       70320,
-       70379,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70460,
-       70469,
-       70471,
-       70473,
-       70475,
-       70478,
-       70487,
-       70488,
-       70493,
-       70500,
-       70502,
-       70509,
-       70512,
-       70517,
-       70784,
-       70854,
-       70855,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71105,
-       71168,
-       71233,
-       71236,
-       71237,
-       71248,
-       71258,
-       71296,
-       71352,
-       71360,
-       71370,
-       71840,
-       71914,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92880,
-       92910,
-       92912,
-       92917,
-       92928,
-       92983,
-       92992,
-       92996,
-       93008,
-       93018,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94095,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113821,
-       113823,
-       119141,
-       119146,
-       119149,
-       119155,
-       119163,
-       119171,
-       119173,
-       119180,
-       119210,
-       119214,
-       119362,
-       119365,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       125136,
-       125143,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102,
-       917760,
-       918000
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x6D,
+       0x6E,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAD,
+       0xAE,
+       0xAF,
+       0xBA,
+       0xBB,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xFA,
+       0xFB,
+       0xFF,
+       0x100,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x300,
+       0x375,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x483,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x610,
+       0x61B,
+       0x620,
+       0x66A,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x6DD,
+       0x6DF,
+       0x6E9,
+       0x6EA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x74B,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x82E,
+       0x840,
+       0x85C,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE3B,
+       0xE40,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF18,
+       0xF1A,
+       0xF20,
+       0xF2A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF85,
+       0xF86,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x1000,
+       0x104A,
+       0x1050,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1715,
+       0x1720,
+       0x1735,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17D4,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x180B,
+       0x180E,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1946,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A1C,
+       0x1A20,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA7,
+       0x1AA8,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1BF4,
+       0x1C00,
+       0x1C38,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C7E,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DF6,
+       0x1DFC,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x200C,
+       0x200E,
+       0x203F,
+       0x2041,
+       0x2054,
+       0x2055,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x20D0,
+       0x20F1,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D7F,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x3030,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x309B,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA62C,
+       0xA640,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6F2,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA8C5,
+       0xA8D0,
+       0xA8DA,
+       0xA8E0,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA92E,
+       0xA930,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA9C1,
+       0xA9CF,
+       0xA9DA,
+       0xA9E0,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEB,
+       0xABEC,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE00,
+       0xFE10,
+       0xFE20,
+       0xFE2E,
+       0xFE33,
+       0xFE35,
+       0xFE4D,
+       0xFE50,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFF10,
+       0xFF1A,
+       0xFF21,
+       0xFF3B,
+       0xFF3F,
+       0xFF40,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x101FD,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102E1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE7,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11047,
+       0x11066,
+       0x11070,
+       0x1107F,
+       0x110BB,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11135,
+       0x11136,
+       0x11140,
+       0x11150,
+       0x11174,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x111C5,
+       0x111D0,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x11238,
+       0x112B0,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115C1,
+       0x11600,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF5,
+       0x16B00,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F8F,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9D,
+       0x1BC9F,
+       0x1D165,
+       0x1D16A,
+       0x1D16D,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8D0,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0100,
+       0xE01F0
 };
 
 static const UV XPosixXDigit_invlist[] = { /* for EBCDIC 1047 */
@@ -22013,3307 +48443,15103 @@ static const UV XPosixXDigit_invlist[] = { /* for EBCDIC 1047 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       129,
-       135,
-       193,
-       199,
-       240,
-       250,
-       65296,
-       65306,
-       65313,
-       65319,
-       65345,
-       65351
+       0x0,
+       0x81,
+       0x87,
+       0xC1,
+       0xC7,
+       0xF0,
+       0xFA,
+       0xFF10,
+       0xFF1A,
+       0xFF21,
+       0xFF27,
+       0xFF41,
+       0xFF47
 };
 
-static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 1047 */
-       267,    /* Number of elements */
+#endif /* defined(PERL_IN_PERL_C) */
+
+#endif /* EBCDIC 1047 */
+
+#if 'A' == 193 /* EBCDIC 037 */ \
+     && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
+     && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 121
+
+#if defined(PERL_IN_PERL_C)
+
+static const UV ASCII_invlist[] = { /* for EBCDIC 037 */
+       56,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       0,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x4,
+       0x5,
+       0x6,
+       0x7,
+       0x8,
+       0xB,
+       0x14,
+       0x16,
+       0x17,
+       0x18,
+       0x1A,
+       0x1C,
+       0x20,
+       0x25,
+       0x28,
+       0x2D,
+       0x30,
+       0x32,
+       0x33,
+       0x37,
+       0x38,
+       0x3C,
+       0x3E,
+       0x3F,
+       0x41,
+       0x4B,
+       0x51,
+       0x5A,
+       0x5F,
+       0x60,
+       0x62,
+       0x6B,
+       0x70,
+       0x79,
+       0x80,
+       0x81,
+       0x8A,
+       0x91,
+       0x9A,
+       0xA1,
+       0xAA,
+       0xB0,
+       0xB1,
+       0xBA,
+       0xBC,
+       0xC0,
+       0xCA,
+       0xD0,
+       0xDA,
+       0xE0,
+       0xE1,
+       0xE2,
+       0xEA,
+       0xF0,
+       0xFA
+};
+
+static const UV Cased_invlist[] = { /* for EBCDIC 037 */
+       277,    /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       154,
-       156,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       173,
-       174,
-       175,
-       186,
-       187,
-       193,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       224,
-       226,
-       234,
-       235,
-       240,
-       251,
-       255,
-       256,
-       305,
-       306,
-       312,
-       313,
-       397,
-       398,
-       411,
-       412,
-       426,
-       428,
-       442,
-       444,
-       446,
-       447,
-       448,
-       452,
-       545,
-       546,
-       564,
-       570,
-       597,
-       598,
-       600,
-       601,
-       602,
-       603,
-       605,
-       608,
-       610,
-       611,
-       612,
-       613,
-       615,
-       616,
-       618,
-       619,
-       621,
-       623,
-       624,
-       625,
-       627,
-       629,
-       630,
-       637,
-       638,
-       640,
-       641,
-       643,
-       644,
-       647,
-       653,
-       658,
-       659,
-       670,
-       671,
-       700,
-       701,
-       702,
-       703,
-       768,
-       770,
-       775,
-       777,
-       778,
-       779,
-       780,
-       781,
-       787,
-       788,
-       817,
-       818,
-       834,
-       835,
-       837,
-       838,
-       880,
-       884,
-       886,
-       888,
-       891,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       978,
-       981,
-       1014,
-       1015,
-       1020,
-       1021,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1377,
-       1416,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       7545,
-       7546,
-       7549,
-       7550,
-       7680,
-       7836,
-       7838,
-       7839,
-       7840,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8486,
-       8487,
-       8490,
-       8492,
-       8498,
-       8499,
-       8526,
-       8527,
-       8544,
-       8576,
-       8579,
-       8581,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11377,
-       11378,
-       11380,
-       11381,
-       11383,
-       11390,
-       11492,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       42560,
-       42606,
-       42624,
-       42652,
-       42786,
-       42800,
-       42802,
-       42864,
-       42873,
-       42888,
-       42891,
-       42894,
-       42896,
-       42900,
-       42902,
-       42926,
-       42928,
-       42930,
-       64256,
-       64263,
-       64275,
-       64280,
-       65313,
-       65339,
-       65345,
-       65371,
-       66560,
-       66640,
-       71840,
-       71904
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFB,
+       0xFF,
+       0x100,
+       0x1BB,
+       0x1BC,
+       0x1C0,
+       0x1C4,
+       0x294,
+       0x295,
+       0x2B9,
+       0x2C0,
+       0x2C2,
+       0x2E0,
+       0x2E5,
+       0x345,
+       0x346,
+       0x370,
+       0x374,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x561,
+       0x588,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x1D00,
+       0x1DC0,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x2135,
+       0x2139,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2180,
+       0x2183,
+       0x2185,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0xA640,
+       0xA66E,
+       0xA680,
+       0xA69E,
+       0xA722,
+       0xA788,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F8,
+       0xA7FB,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0x10400,
+       0x10450,
+       0x118A0,
+       0x118E0,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A
+};
+
+static const UV Grapheme_Cluster_Break_invlist[] = { /* for EBCDIC 037 */
+       1484,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       0,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0xD,
+       0xE,
+       0x25,
+       0x26,
+       0x40,
+       0xCA,
+       0xCB,
+       0xFF,
+       0x100,
+       0x300,
+       0x370,
+       0x483,
+       0x48A,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x600,
+       0x606,
+       0x610,
+       0x61B,
+       0x61C,
+       0x61D,
+       0x64B,
+       0x660,
+       0x670,
+       0x671,
+       0x6D6,
+       0x6DD,
+       0x6DE,
+       0x6DF,
+       0x6E5,
+       0x6E7,
+       0x6E9,
+       0x6EA,
+       0x6EE,
+       0x70F,
+       0x710,
+       0x711,
+       0x712,
+       0x730,
+       0x74B,
+       0x7A6,
+       0x7B1,
+       0x7EB,
+       0x7F4,
+       0x816,
+       0x81A,
+       0x81B,
+       0x824,
+       0x825,
+       0x828,
+       0x829,
+       0x82E,
+       0x859,
+       0x85C,
+       0x8E4,
+       0x903,
+       0x904,
+       0x93A,
+       0x93B,
+       0x93C,
+       0x93D,
+       0x93E,
+       0x941,
+       0x949,
+       0x94D,
+       0x94E,
+       0x950,
+       0x951,
+       0x958,
+       0x962,
+       0x964,
+       0x981,
+       0x982,
+       0x984,
+       0x9BC,
+       0x9BD,
+       0x9BE,
+       0x9BF,
+       0x9C1,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CD,
+       0x9CE,
+       0x9D7,
+       0x9D8,
+       0x9E2,
+       0x9E4,
+       0xA01,
+       0xA03,
+       0xA04,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA41,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA70,
+       0xA72,
+       0xA75,
+       0xA76,
+       0xA81,
+       0xA83,
+       0xA84,
+       0xABC,
+       0xABD,
+       0xABE,
+       0xAC1,
+       0xAC6,
+       0xAC7,
+       0xAC9,
+       0xACA,
+       0xACB,
+       0xACD,
+       0xACE,
+       0xAE2,
+       0xAE4,
+       0xB01,
+       0xB02,
+       0xB04,
+       0xB3C,
+       0xB3D,
+       0xB3E,
+       0xB40,
+       0xB41,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4D,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB62,
+       0xB64,
+       0xB82,
+       0xB83,
+       0xBBE,
+       0xBBF,
+       0xBC0,
+       0xBC1,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCD,
+       0xBCE,
+       0xBD7,
+       0xBD8,
+       0xC00,
+       0xC01,
+       0xC04,
+       0xC3E,
+       0xC41,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC62,
+       0xC64,
+       0xC81,
+       0xC82,
+       0xC84,
+       0xCBC,
+       0xCBD,
+       0xCBE,
+       0xCBF,
+       0xCC0,
+       0xCC2,
+       0xCC3,
+       0xCC5,
+       0xCC6,
+       0xCC7,
+       0xCC9,
+       0xCCA,
+       0xCCC,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCE2,
+       0xCE4,
+       0xD01,
+       0xD02,
+       0xD04,
+       0xD3E,
+       0xD3F,
+       0xD41,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4D,
+       0xD4E,
+       0xD57,
+       0xD58,
+       0xD62,
+       0xD64,
+       0xD82,
+       0xD84,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD0,
+       0xDD2,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDDF,
+       0xDE0,
+       0xDF2,
+       0xDF4,
+       0xE31,
+       0xE32,
+       0xE33,
+       0xE34,
+       0xE3B,
+       0xE47,
+       0xE4F,
+       0xEB1,
+       0xEB2,
+       0xEB3,
+       0xEB4,
+       0xEBA,
+       0xEBB,
+       0xEBD,
+       0xEC8,
+       0xECE,
+       0xF18,
+       0xF1A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF40,
+       0xF71,
+       0xF7F,
+       0xF80,
+       0xF85,
+       0xF86,
+       0xF88,
+       0xF8D,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x102D,
+       0x1031,
+       0x1032,
+       0x1038,
+       0x1039,
+       0x103B,
+       0x103D,
+       0x103F,
+       0x1056,
+       0x1058,
+       0x105A,
+       0x105E,
+       0x1061,
+       0x1071,
+       0x1075,
+       0x1082,
+       0x1083,
+       0x1084,
+       0x1085,
+       0x1087,
+       0x108D,
+       0x108E,
+       0x109D,
+       0x109E,
+       0x1100,
+       0x1160,
+       0x11A8,
+       0x1200,
+       0x135D,
+       0x1360,
+       0x1712,
+       0x1715,
+       0x1732,
+       0x1735,
+       0x1752,
+       0x1754,
+       0x1772,
+       0x1774,
+       0x17B4,
+       0x17B6,
+       0x17B7,
+       0x17BE,
+       0x17C6,
+       0x17C7,
+       0x17C9,
+       0x17D4,
+       0x17DD,
+       0x17DE,
+       0x180B,
+       0x180E,
+       0x180F,
+       0x18A9,
+       0x18AA,
+       0x1920,
+       0x1923,
+       0x1927,
+       0x1929,
+       0x192C,
+       0x1930,
+       0x1932,
+       0x1933,
+       0x1939,
+       0x193C,
+       0x19B5,
+       0x19B8,
+       0x19BA,
+       0x19BB,
+       0x1A17,
+       0x1A19,
+       0x1A1B,
+       0x1A1C,
+       0x1A55,
+       0x1A56,
+       0x1A57,
+       0x1A58,
+       0x1A5F,
+       0x1A60,
+       0x1A61,
+       0x1A62,
+       0x1A63,
+       0x1A65,
+       0x1A6D,
+       0x1A73,
+       0x1A7D,
+       0x1A7F,
+       0x1A80,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B04,
+       0x1B05,
+       0x1B34,
+       0x1B35,
+       0x1B36,
+       0x1B3B,
+       0x1B3C,
+       0x1B3D,
+       0x1B42,
+       0x1B43,
+       0x1B45,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1B82,
+       0x1B83,
+       0x1BA1,
+       0x1BA2,
+       0x1BA6,
+       0x1BA8,
+       0x1BAA,
+       0x1BAB,
+       0x1BAE,
+       0x1BE6,
+       0x1BE7,
+       0x1BE8,
+       0x1BEA,
+       0x1BED,
+       0x1BEE,
+       0x1BEF,
+       0x1BF2,
+       0x1BF4,
+       0x1C24,
+       0x1C2C,
+       0x1C34,
+       0x1C36,
+       0x1C38,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CE1,
+       0x1CE2,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF2,
+       0x1CF4,
+       0x1CF5,
+       0x1CF8,
+       0x1CFA,
+       0x1DC0,
+       0x1DF6,
+       0x1DFC,
+       0x1E00,
+       0x200B,
+       0x200C,
+       0x200E,
+       0x2010,
+       0x2028,
+       0x202F,
+       0x2060,
+       0x2070,
+       0x20D0,
+       0x20F1,
+       0x2CEF,
+       0x2CF2,
+       0x2D7F,
+       0x2D80,
+       0x2DE0,
+       0x2E00,
+       0x302A,
+       0x3030,
+       0x3099,
+       0x309B,
+       0xA66F,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA69F,
+       0xA6A0,
+       0xA6F0,
+       0xA6F2,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA823,
+       0xA825,
+       0xA827,
+       0xA828,
+       0xA880,
+       0xA882,
+       0xA8B4,
+       0xA8C4,
+       0xA8C5,
+       0xA8E0,
+       0xA8F2,
+       0xA926,
+       0xA92E,
+       0xA947,
+       0xA952,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA983,
+       0xA984,
+       0xA9B3,
+       0xA9B4,
+       0xA9B6,
+       0xA9BA,
+       0xA9BC,
+       0xA9BD,
+       0xA9C1,
+       0xA9E5,
+       0xA9E6,
+       0xAA29,
+       0xAA2F,
+       0xAA31,
+       0xAA33,
+       0xAA35,
+       0xAA37,
+       0xAA43,
+       0xAA44,
+       0xAA4C,
+       0xAA4D,
+       0xAA4E,
+       0xAA7C,
+       0xAA7D,
+       0xAAB0,
+       0xAAB1,
+       0xAAB2,
+       0xAAB5,
+       0xAAB7,
+       0xAAB9,
+       0xAABE,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAEB,
+       0xAAEC,
+       0xAAEE,
+       0xAAF0,
+       0xAAF5,
+       0xAAF6,
+       0xAAF7,
+       0xABE3,
+       0xABE5,
+       0xABE6,
+       0xABE8,
+       0xABE9,
+       0xABEB,
+       0xABEC,
+       0xABED,
+       0xABEE,
+       0xAC00,
+       0xAC01,
+       0xAC1C,
+       0xAC1D,
+       0xAC38,
+       0xAC39,
+       0xAC54,
+       0xAC55,
+       0xAC70,
+       0xAC71,
+       0xAC8C,
+       0xAC8D,
+       0xACA8,
+       0xACA9,
+       0xACC4,
+       0xACC5,
+       0xACE0,
+       0xACE1,
+       0xACFC,
+       0xACFD,
+       0xAD18,
+       0xAD19,
+       0xAD34,
+       0xAD35,
+       0xAD50,
+       0xAD51,
+       0xAD6C,
+       0xAD6D,
+       0xAD88,
+       0xAD89,
+       0xADA4,
+       0xADA5,
+       0xADC0,
+       0xADC1,
+       0xADDC,
+       0xADDD,
+       0xADF8,
+       0xADF9,
+       0xAE14,
+       0xAE15,
+       0xAE30,
+       0xAE31,
+       0xAE4C,
+       0xAE4D,
+       0xAE68,
+       0xAE69,
+       0xAE84,
+       0xAE85,
+       0xAEA0,
+       0xAEA1,
+       0xAEBC,
+       0xAEBD,
+       0xAED8,
+       0xAED9,
+       0xAEF4,
+       0xAEF5,
+       0xAF10,
+       0xAF11,
+       0xAF2C,
+       0xAF2D,
+       0xAF48,
+       0xAF49,
+       0xAF64,
+       0xAF65,
+       0xAF80,
+       0xAF81,
+       0xAF9C,
+       0xAF9D,
+       0xAFB8,
+       0xAFB9,
+       0xAFD4,
+       0xAFD5,
+       0xAFF0,
+       0xAFF1,
+       0xB00C,
+       0xB00D,
+       0xB028,
+       0xB029,
+       0xB044,
+       0xB045,
+       0xB060,
+       0xB061,
+       0xB07C,
+       0xB07D,
+       0xB098,
+       0xB099,
+       0xB0B4,
+       0xB0B5,
+       0xB0D0,
+       0xB0D1,
+       0xB0EC,
+       0xB0ED,
+       0xB108,
+       0xB109,
+       0xB124,
+       0xB125,
+       0xB140,
+       0xB141,
+       0xB15C,
+       0xB15D,
+       0xB178,
+       0xB179,
+       0xB194,
+       0xB195,
+       0xB1B0,
+       0xB1B1,
+       0xB1CC,
+       0xB1CD,
+       0xB1E8,
+       0xB1E9,
+       0xB204,
+       0xB205,
+       0xB220,
+       0xB221,
+       0xB23C,
+       0xB23D,
+       0xB258,
+       0xB259,
+       0xB274,
+       0xB275,
+       0xB290,
+       0xB291,
+       0xB2AC,
+       0xB2AD,
+       0xB2C8,
+       0xB2C9,
+       0xB2E4,
+       0xB2E5,
+       0xB300,
+       0xB301,
+       0xB31C,
+       0xB31D,
+       0xB338,
+       0xB339,
+       0xB354,
+       0xB355,
+       0xB370,
+       0xB371,
+       0xB38C,
+       0xB38D,
+       0xB3A8,
+       0xB3A9,
+       0xB3C4,
+       0xB3C5,
+       0xB3E0,
+       0xB3E1,
+       0xB3FC,
+       0xB3FD,
+       0xB418,
+       0xB419,
+       0xB434,
+       0xB435,
+       0xB450,
+       0xB451,
+       0xB46C,
+       0xB46D,
+       0xB488,
+       0xB489,
+       0xB4A4,
+       0xB4A5,
+       0xB4C0,
+       0xB4C1,
+       0xB4DC,
+       0xB4DD,
+       0xB4F8,
+       0xB4F9,
+       0xB514,
+       0xB515,
+       0xB530,
+       0xB531,
+       0xB54C,
+       0xB54D,
+       0xB568,
+       0xB569,
+       0xB584,
+       0xB585,
+       0xB5A0,
+       0xB5A1,
+       0xB5BC,
+       0xB5BD,
+       0xB5D8,
+       0xB5D9,
+       0xB5F4,
+       0xB5F5,
+       0xB610,
+       0xB611,
+       0xB62C,
+       0xB62D,
+       0xB648,
+       0xB649,
+       0xB664,
+       0xB665,
+       0xB680,
+       0xB681,
+       0xB69C,
+       0xB69D,
+       0xB6B8,
+       0xB6B9,
+       0xB6D4,
+       0xB6D5,
+       0xB6F0,
+       0xB6F1,
+       0xB70C,
+       0xB70D,
+       0xB728,
+       0xB729,
+       0xB744,
+       0xB745,
+       0xB760,
+       0xB761,
+       0xB77C,
+       0xB77D,
+       0xB798,
+       0xB799,
+       0xB7B4,
+       0xB7B5,
+       0xB7D0,
+       0xB7D1,
+       0xB7EC,
+       0xB7ED,
+       0xB808,
+       0xB809,
+       0xB824,
+       0xB825,
+       0xB840,
+       0xB841,
+       0xB85C,
+       0xB85D,
+       0xB878,
+       0xB879,
+       0xB894,
+       0xB895,
+       0xB8B0,
+       0xB8B1,
+       0xB8CC,
+       0xB8CD,
+       0xB8E8,
+       0xB8E9,
+       0xB904,
+       0xB905,
+       0xB920,
+       0xB921,
+       0xB93C,
+       0xB93D,
+       0xB958,
+       0xB959,
+       0xB974,
+       0xB975,
+       0xB990,
+       0xB991,
+       0xB9AC,
+       0xB9AD,
+       0xB9C8,
+       0xB9C9,
+       0xB9E4,
+       0xB9E5,
+       0xBA00,
+       0xBA01,
+       0xBA1C,
+       0xBA1D,
+       0xBA38,
+       0xBA39,
+       0xBA54,
+       0xBA55,
+       0xBA70,
+       0xBA71,
+       0xBA8C,
+       0xBA8D,
+       0xBAA8,
+       0xBAA9,
+       0xBAC4,
+       0xBAC5,
+       0xBAE0,
+       0xBAE1,
+       0xBAFC,
+       0xBAFD,
+       0xBB18,
+       0xBB19,
+       0xBB34,
+       0xBB35,
+       0xBB50,
+       0xBB51,
+       0xBB6C,
+       0xBB6D,
+       0xBB88,
+       0xBB89,
+       0xBBA4,
+       0xBBA5,
+       0xBBC0,
+       0xBBC1,
+       0xBBDC,
+       0xBBDD,
+       0xBBF8,
+       0xBBF9,
+       0xBC14,
+       0xBC15,
+       0xBC30,
+       0xBC31,
+       0xBC4C,
+       0xBC4D,
+       0xBC68,
+       0xBC69,
+       0xBC84,
+       0xBC85,
+       0xBCA0,
+       0xBCA1,
+       0xBCBC,
+       0xBCBD,
+       0xBCD8,
+       0xBCD9,
+       0xBCF4,
+       0xBCF5,
+       0xBD10,
+       0xBD11,
+       0xBD2C,
+       0xBD2D,
+       0xBD48,
+       0xBD49,
+       0xBD64,
+       0xBD65,
+       0xBD80,
+       0xBD81,
+       0xBD9C,
+       0xBD9D,
+       0xBDB8,
+       0xBDB9,
+       0xBDD4,
+       0xBDD5,
+       0xBDF0,
+       0xBDF1,
+       0xBE0C,
+       0xBE0D,
+       0xBE28,
+       0xBE29,
+       0xBE44,
+       0xBE45,
+       0xBE60,
+       0xBE61,
+       0xBE7C,
+       0xBE7D,
+       0xBE98,
+       0xBE99,
+       0xBEB4,
+       0xBEB5,
+       0xBED0,
+       0xBED1,
+       0xBEEC,
+       0xBEED,
+       0xBF08,
+       0xBF09,
+       0xBF24,
+       0xBF25,
+       0xBF40,
+       0xBF41,
+       0xBF5C,
+       0xBF5D,
+       0xBF78,
+       0xBF79,
+       0xBF94,
+       0xBF95,
+       0xBFB0,
+       0xBFB1,
+       0xBFCC,
+       0xBFCD,
+       0xBFE8,
+       0xBFE9,
+       0xC004,
+       0xC005,
+       0xC020,
+       0xC021,
+       0xC03C,
+       0xC03D,
+       0xC058,
+       0xC059,
+       0xC074,
+       0xC075,
+       0xC090,
+       0xC091,
+       0xC0AC,
+       0xC0AD,
+       0xC0C8,
+       0xC0C9,
+       0xC0E4,
+       0xC0E5,
+       0xC100,
+       0xC101,
+       0xC11C,
+       0xC11D,
+       0xC138,
+       0xC139,
+       0xC154,
+       0xC155,
+       0xC170,
+       0xC171,
+       0xC18C,
+       0xC18D,
+       0xC1A8,
+       0xC1A9,
+       0xC1C4,
+       0xC1C5,
+       0xC1E0,
+       0xC1E1,
+       0xC1FC,
+       0xC1FD,
+       0xC218,
+       0xC219,
+       0xC234,
+       0xC235,
+       0xC250,
+       0xC251,
+       0xC26C,
+       0xC26D,
+       0xC288,
+       0xC289,
+       0xC2A4,
+       0xC2A5,
+       0xC2C0,
+       0xC2C1,
+       0xC2DC,
+       0xC2DD,
+       0xC2F8,
+       0xC2F9,
+       0xC314,
+       0xC315,
+       0xC330,
+       0xC331,
+       0xC34C,
+       0xC34D,
+       0xC368,
+       0xC369,
+       0xC384,
+       0xC385,
+       0xC3A0,
+       0xC3A1,
+       0xC3BC,
+       0xC3BD,
+       0xC3D8,
+       0xC3D9,
+       0xC3F4,
+       0xC3F5,
+       0xC410,
+       0xC411,
+       0xC42C,
+       0xC42D,
+       0xC448,
+       0xC449,
+       0xC464,
+       0xC465,
+       0xC480,
+       0xC481,
+       0xC49C,
+       0xC49D,
+       0xC4B8,
+       0xC4B9,
+       0xC4D4,
+       0xC4D5,
+       0xC4F0,
+       0xC4F1,
+       0xC50C,
+       0xC50D,
+       0xC528,
+       0xC529,
+       0xC544,
+       0xC545,
+       0xC560,
+       0xC561,
+       0xC57C,
+       0xC57D,
+       0xC598,
+       0xC599,
+       0xC5B4,
+       0xC5B5,
+       0xC5D0,
+       0xC5D1,
+       0xC5EC,
+       0xC5ED,
+       0xC608,
+       0xC609,
+       0xC624,
+       0xC625,
+       0xC640,
+       0xC641,
+       0xC65C,
+       0xC65D,
+       0xC678,
+       0xC679,
+       0xC694,
+       0xC695,
+       0xC6B0,
+       0xC6B1,
+       0xC6CC,
+       0xC6CD,
+       0xC6E8,
+       0xC6E9,
+       0xC704,
+       0xC705,
+       0xC720,
+       0xC721,
+       0xC73C,
+       0xC73D,
+       0xC758,
+       0xC759,
+       0xC774,
+       0xC775,
+       0xC790,
+       0xC791,
+       0xC7AC,
+       0xC7AD,
+       0xC7C8,
+       0xC7C9,
+       0xC7E4,
+       0xC7E5,
+       0xC800,
+       0xC801,
+       0xC81C,
+       0xC81D,
+       0xC838,
+       0xC839,
+       0xC854,
+       0xC855,
+       0xC870,
+       0xC871,
+       0xC88C,
+       0xC88D,
+       0xC8A8,
+       0xC8A9,
+       0xC8C4,
+       0xC8C5,
+       0xC8E0,
+       0xC8E1,
+       0xC8FC,
+       0xC8FD,
+       0xC918,
+       0xC919,
+       0xC934,
+       0xC935,
+       0xC950,
+       0xC951,
+       0xC96C,
+       0xC96D,
+       0xC988,
+       0xC989,
+       0xC9A4,
+       0xC9A5,
+       0xC9C0,
+       0xC9C1,
+       0xC9DC,
+       0xC9DD,
+       0xC9F8,
+       0xC9F9,
+       0xCA14,
+       0xCA15,
+       0xCA30,
+       0xCA31,
+       0xCA4C,
+       0xCA4D,
+       0xCA68,
+       0xCA69,
+       0xCA84,
+       0xCA85,
+       0xCAA0,
+       0xCAA1,
+       0xCABC,
+       0xCABD,
+       0xCAD8,
+       0xCAD9,
+       0xCAF4,
+       0xCAF5,
+       0xCB10,
+       0xCB11,
+       0xCB2C,
+       0xCB2D,
+       0xCB48,
+       0xCB49,
+       0xCB64,
+       0xCB65,
+       0xCB80,
+       0xCB81,
+       0xCB9C,
+       0xCB9D,
+       0xCBB8,
+       0xCBB9,
+       0xCBD4,
+       0xCBD5,
+       0xCBF0,
+       0xCBF1,
+       0xCC0C,
+       0xCC0D,
+       0xCC28,
+       0xCC29,
+       0xCC44,
+       0xCC45,
+       0xCC60,
+       0xCC61,
+       0xCC7C,
+       0xCC7D,
+       0xCC98,
+       0xCC99,
+       0xCCB4,
+       0xCCB5,
+       0xCCD0,
+       0xCCD1,
+       0xCCEC,
+       0xCCED,
+       0xCD08,
+       0xCD09,
+       0xCD24,
+       0xCD25,
+       0xCD40,
+       0xCD41,
+       0xCD5C,
+       0xCD5D,
+       0xCD78,
+       0xCD79,
+       0xCD94,
+       0xCD95,
+       0xCDB0,
+       0xCDB1,
+       0xCDCC,
+       0xCDCD,
+       0xCDE8,
+       0xCDE9,
+       0xCE04,
+       0xCE05,
+       0xCE20,
+       0xCE21,
+       0xCE3C,
+       0xCE3D,
+       0xCE58,
+       0xCE59,
+       0xCE74,
+       0xCE75,
+       0xCE90,
+       0xCE91,
+       0xCEAC,
+       0xCEAD,
+       0xCEC8,
+       0xCEC9,
+       0xCEE4,
+       0xCEE5,
+       0xCF00,
+       0xCF01,
+       0xCF1C,
+       0xCF1D,
+       0xCF38,
+       0xCF39,
+       0xCF54,
+       0xCF55,
+       0xCF70,
+       0xCF71,
+       0xCF8C,
+       0xCF8D,
+       0xCFA8,
+       0xCFA9,
+       0xCFC4,
+       0xCFC5,
+       0xCFE0,
+       0xCFE1,
+       0xCFFC,
+       0xCFFD,
+       0xD018,
+       0xD019,
+       0xD034,
+       0xD035,
+       0xD050,
+       0xD051,
+       0xD06C,
+       0xD06D,
+       0xD088,
+       0xD089,
+       0xD0A4,
+       0xD0A5,
+       0xD0C0,
+       0xD0C1,
+       0xD0DC,
+       0xD0DD,
+       0xD0F8,
+       0xD0F9,
+       0xD114,
+       0xD115,
+       0xD130,
+       0xD131,
+       0xD14C,
+       0xD14D,
+       0xD168,
+       0xD169,
+       0xD184,
+       0xD185,
+       0xD1A0,
+       0xD1A1,
+       0xD1BC,
+       0xD1BD,
+       0xD1D8,
+       0xD1D9,
+       0xD1F4,
+       0xD1F5,
+       0xD210,
+       0xD211,
+       0xD22C,
+       0xD22D,
+       0xD248,
+       0xD249,
+       0xD264,
+       0xD265,
+       0xD280,
+       0xD281,
+       0xD29C,
+       0xD29D,
+       0xD2B8,
+       0xD2B9,
+       0xD2D4,
+       0xD2D5,
+       0xD2F0,
+       0xD2F1,
+       0xD30C,
+       0xD30D,
+       0xD328,
+       0xD329,
+       0xD344,
+       0xD345,
+       0xD360,
+       0xD361,
+       0xD37C,
+       0xD37D,
+       0xD398,
+       0xD399,
+       0xD3B4,
+       0xD3B5,
+       0xD3D0,
+       0xD3D1,
+       0xD3EC,
+       0xD3ED,
+       0xD408,
+       0xD409,
+       0xD424,
+       0xD425,
+       0xD440,
+       0xD441,
+       0xD45C,
+       0xD45D,
+       0xD478,
+       0xD479,
+       0xD494,
+       0xD495,
+       0xD4B0,
+       0xD4B1,
+       0xD4CC,
+       0xD4CD,
+       0xD4E8,
+       0xD4E9,
+       0xD504,
+       0xD505,
+       0xD520,
+       0xD521,
+       0xD53C,
+       0xD53D,
+       0xD558,
+       0xD559,
+       0xD574,
+       0xD575,
+       0xD590,
+       0xD591,
+       0xD5AC,
+       0xD5AD,
+       0xD5C8,
+       0xD5C9,
+       0xD5E4,
+       0xD5E5,
+       0xD600,
+       0xD601,
+       0xD61C,
+       0xD61D,
+       0xD638,
+       0xD639,
+       0xD654,
+       0xD655,
+       0xD670,
+       0xD671,
+       0xD68C,
+       0xD68D,
+       0xD6A8,
+       0xD6A9,
+       0xD6C4,
+       0xD6C5,
+       0xD6E0,
+       0xD6E1,
+       0xD6FC,
+       0xD6FD,
+       0xD718,
+       0xD719,
+       0xD734,
+       0xD735,
+       0xD750,
+       0xD751,
+       0xD76C,
+       0xD76D,
+       0xD788,
+       0xD789,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xD800,
+       0xE000,
+       0xFB1E,
+       0xFB1F,
+       0xFE00,
+       0xFE10,
+       0xFE20,
+       0xFE2E,
+       0xFEFF,
+       0xFF00,
+       0xFF9E,
+       0xFFA0,
+       0xFFF0,
+       0xFFFC,
+       0x101FD,
+       0x101FE,
+       0x102E0,
+       0x102E1,
+       0x10376,
+       0x1037B,
+       0x10A01,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A10,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10AE5,
+       0x10AE7,
+       0x11000,
+       0x11001,
+       0x11002,
+       0x11003,
+       0x11038,
+       0x11047,
+       0x1107F,
+       0x11082,
+       0x11083,
+       0x110B0,
+       0x110B3,
+       0x110B7,
+       0x110B9,
+       0x110BB,
+       0x110BD,
+       0x110BE,
+       0x11100,
+       0x11103,
+       0x11127,
+       0x1112C,
+       0x1112D,
+       0x11135,
+       0x11173,
+       0x11174,
+       0x11180,
+       0x11182,
+       0x11183,
+       0x111B3,
+       0x111B6,
+       0x111BF,
+       0x111C1,
+       0x1122C,
+       0x1122F,
+       0x11232,
+       0x11234,
+       0x11235,
+       0x11236,
+       0x11238,
+       0x112DF,
+       0x112E0,
+       0x112E3,
+       0x112EB,
+       0x11301,
+       0x11302,
+       0x11304,
+       0x1133C,
+       0x1133D,
+       0x1133E,
+       0x1133F,
+       0x11340,
+       0x11341,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x11362,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x114B0,
+       0x114B1,
+       0x114B3,
+       0x114B9,
+       0x114BA,
+       0x114BB,
+       0x114BD,
+       0x114BE,
+       0x114BF,
+       0x114C1,
+       0x114C2,
+       0x114C4,
+       0x115AF,
+       0x115B0,
+       0x115B2,
+       0x115B6,
+       0x115B8,
+       0x115BC,
+       0x115BE,
+       0x115BF,
+       0x115C1,
+       0x11630,
+       0x11633,
+       0x1163B,
+       0x1163D,
+       0x1163E,
+       0x1163F,
+       0x11641,
+       0x116AB,
+       0x116AC,
+       0x116AD,
+       0x116AE,
+       0x116B0,
+       0x116B6,
+       0x116B7,
+       0x116B8,
+       0x16AF0,
+       0x16AF5,
+       0x16B30,
+       0x16B37,
+       0x16F51,
+       0x16F7F,
+       0x16F8F,
+       0x16F93,
+       0x1BC9D,
+       0x1BC9F,
+       0x1BCA0,
+       0x1BCA4,
+       0x1D165,
+       0x1D166,
+       0x1D167,
+       0x1D16A,
+       0x1D16D,
+       0x1D16E,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1E8D0,
+       0x1E8D7,
+       0x1F1E6,
+       0x1F200,
+       0xE0000,
+       0xE0100,
+       0xE01F0,
+       0xE1000
 };
 
-#endif /* #ifndef PERL_IN_XSUB_RE */
+#endif /* defined(PERL_IN_PERL_C) */
 
-static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC 1047 */
+#if defined(PERL_IN_REGEXEC_C)
+
+#define PL_GCB_ENUM_COUNT 14
+
+typedef enum {
+       PL_GCB_Other = 0,
+       PL_GCB_CR = 1,
+       PL_GCB_Control = 2,
+       PL_GCB_EDGE = 3,
+       PL_GCB_Extend = 4,
+       PL_GCB_L = 5,
+       PL_GCB_LF = 6,
+       PL_GCB_LV = 7,
+       PL_GCB_LVT = 8,
+       PL_GCB_Prepend = 9,
+       PL_GCB_Regional_Indicator = 10,
+       PL_GCB_SpacingMark = 11,
+       PL_GCB_T = 12,
+       PL_GCB_V = 13
+} PL_GCB_enum;
+
+static const PL_GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for EBCDIC 037 */
+       PL_GCB_Control,
+       PL_GCB_CR,
+       PL_GCB_Control,
+       PL_GCB_LF,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_L,
+       PL_GCB_V,
+       PL_GCB_T,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_L,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_Other,
+       PL_GCB_V,
+       PL_GCB_Other,
+       PL_GCB_T,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Regional_Indicator,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Other
+};
+
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_REGCOMP_C)
+
+static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC 037 */
        45,     /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       700,
-       701,
-       776,
-       777,
-       787,
-       788,
-       834,
-       835,
-       940,
-       941,
-       942,
-       943,
-       945,
-       946,
-       951,
-       952,
-       953,
-       954,
-       961,
-       962,
-       965,
-       966,
-       969,
-       970,
-       974,
-       975,
-       1381,
-       1382,
-       1396,
-       1397,
-       1406,
-       1407,
-       7936,
-       7944,
-       7968,
-       7976,
-       8032,
-       8040,
-       8048,
-       8049,
-       8052,
-       8053,
-       8060,
-       8061
+       0x0,
+       0x2BC,
+       0x2BD,
+       0x308,
+       0x309,
+       0x313,
+       0x314,
+       0x342,
+       0x343,
+       0x3AC,
+       0x3AD,
+       0x3AE,
+       0x3AF,
+       0x3B1,
+       0x3B2,
+       0x3B7,
+       0x3B8,
+       0x3B9,
+       0x3BA,
+       0x3C1,
+       0x3C2,
+       0x3C5,
+       0x3C6,
+       0x3C9,
+       0x3CA,
+       0x3CE,
+       0x3CF,
+       0x565,
+       0x566,
+       0x574,
+       0x575,
+       0x57E,
+       0x57F,
+       0x1F00,
+       0x1F08,
+       0x1F20,
+       0x1F28,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1F71,
+       0x1F74,
+       0x1F75,
+       0x1F7C,
+       0x1F7D
 };
 
-#ifndef PERL_IN_XSUB_RE
-
-static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC 1047 */
-       59,     /* Number of elements */
+static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 037 */
+       263,    /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       89,
-       90,
-       304,
-       305,
-       329,
-       330,
-       496,
-       497,
-       912,
-       913,
-       944,
-       945,
-       1415,
-       1416,
-       7830,
-       7835,
-       7838,
-       7839,
-       8016,
-       8017,
-       8018,
-       8019,
-       8020,
-       8021,
-       8022,
-       8023,
-       8064,
-       8112,
-       8114,
-       8117,
-       8118,
-       8120,
-       8124,
-       8125,
-       8130,
-       8133,
-       8134,
-       8136,
-       8140,
-       8141,
-       8146,
-       8148,
-       8150,
-       8152,
-       8162,
-       8165,
-       8166,
-       8168,
-       8178,
-       8181,
-       8182,
-       8184,
-       8188,
-       8189,
-       64256,
-       64263,
-       64275,
-       64280
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9A,
+       0x9C,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFB,
+       0xFF,
+       0x100,
+       0x131,
+       0x132,
+       0x138,
+       0x139,
+       0x18D,
+       0x18E,
+       0x19B,
+       0x19C,
+       0x1AA,
+       0x1AC,
+       0x1BA,
+       0x1BC,
+       0x1BE,
+       0x1BF,
+       0x1C0,
+       0x1C4,
+       0x221,
+       0x222,
+       0x234,
+       0x23A,
+       0x255,
+       0x256,
+       0x258,
+       0x259,
+       0x25A,
+       0x25B,
+       0x25D,
+       0x260,
+       0x262,
+       0x263,
+       0x264,
+       0x265,
+       0x267,
+       0x268,
+       0x26A,
+       0x26B,
+       0x26D,
+       0x26F,
+       0x270,
+       0x271,
+       0x273,
+       0x275,
+       0x276,
+       0x27D,
+       0x27E,
+       0x280,
+       0x281,
+       0x283,
+       0x284,
+       0x287,
+       0x28D,
+       0x292,
+       0x293,
+       0x29E,
+       0x29F,
+       0x2BC,
+       0x2BD,
+       0x2BE,
+       0x2BF,
+       0x300,
+       0x302,
+       0x307,
+       0x309,
+       0x30A,
+       0x30B,
+       0x30C,
+       0x30D,
+       0x313,
+       0x314,
+       0x331,
+       0x332,
+       0x342,
+       0x343,
+       0x345,
+       0x346,
+       0x370,
+       0x374,
+       0x376,
+       0x378,
+       0x37B,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3D2,
+       0x3D5,
+       0x3F6,
+       0x3F7,
+       0x3FC,
+       0x3FD,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x561,
+       0x588,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x1D79,
+       0x1D7A,
+       0x1D7D,
+       0x1D7E,
+       0x1E00,
+       0x1E9C,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2126,
+       0x2127,
+       0x212A,
+       0x212C,
+       0x2132,
+       0x2133,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2180,
+       0x2183,
+       0x2185,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2C71,
+       0x2C72,
+       0x2C74,
+       0x2C75,
+       0x2C77,
+       0x2C7E,
+       0x2CE4,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0xA640,
+       0xA66E,
+       0xA680,
+       0xA69C,
+       0xA722,
+       0xA730,
+       0xA732,
+       0xA770,
+       0xA779,
+       0xA788,
+       0xA78B,
+       0xA78E,
+       0xA790,
+       0xA794,
+       0xA796,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0x10400,
+       0x10450,
+       0x118A0,
+       0x118E0
 };
 
-static const UV UpperLatin1_invlist[] = { /* for EBCDIC 1047 */
-       55,     /* Number of elements */
+static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC 037 */
+       59,     /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       4,
-       5,
-       6,
-       7,
-       8,
-       11,
-       20,
-       21,
-       23,
-       24,
-       26,
-       28,
-       32,
-       38,
-       40,
-       45,
-       48,
-       50,
-       51,
-       55,
-       56,
-       60,
-       62,
-       63,
-       65,
-       75,
-       81,
-       90,
-       98,
-       107,
-       112,
-       121,
-       128,
-       129,
-       138,
-       145,
-       154,
-       161,
-       170,
-       173,
-       174,
-       189,
-       190,
-       192,
-       202,
-       208,
-       218,
-       224,
-       225,
-       226,
-       234,
-       240,
-       250,
-       256
+       0x0,
+       0x59,
+       0x5A,
+       0x130,
+       0x131,
+       0x149,
+       0x14A,
+       0x1F0,
+       0x1F1,
+       0x390,
+       0x391,
+       0x3B0,
+       0x3B1,
+       0x587,
+       0x588,
+       0x1E96,
+       0x1E9B,
+       0x1E9E,
+       0x1E9F,
+       0x1F50,
+       0x1F51,
+       0x1F52,
+       0x1F53,
+       0x1F54,
+       0x1F55,
+       0x1F56,
+       0x1F57,
+       0x1F80,
+       0x1FB0,
+       0x1FB2,
+       0x1FB5,
+       0x1FB6,
+       0x1FB8,
+       0x1FBC,
+       0x1FBD,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FC8,
+       0x1FCC,
+       0x1FCD,
+       0x1FD2,
+       0x1FD4,
+       0x1FD6,
+       0x1FD8,
+       0x1FE2,
+       0x1FE5,
+       0x1FE6,
+       0x1FE8,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FF8,
+       0x1FFC,
+       0x1FFD,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18
 };
 
-static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 1047 */
-       1121,   /* Number of elements */
+#endif /* defined(PERL_IN_REGCOMP_C) */
+
+#if defined(PERL_IN_UTF8_C)
+
+static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
+       1287,   /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       109,
-       110,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       173,
-       174,
-       175,
-       186,
-       187,
-       193,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       224,
-       226,
-       234,
-       235,
-       240,
-       251,
-       255,
-       256,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       880,
-       885,
-       886,
-       888,
-       891,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1488,
-       1515,
-       1520,
-       1523,
-       1568,
-       1611,
-       1646,
-       1648,
-       1649,
-       1748,
-       1749,
-       1750,
-       1765,
-       1767,
-       1774,
-       1776,
-       1786,
-       1789,
-       1791,
-       1792,
-       1808,
-       1809,
-       1810,
-       1840,
-       1869,
-       1958,
-       1969,
-       1970,
-       1994,
-       2027,
-       2036,
-       2038,
-       2042,
-       2043,
-       2048,
-       2070,
-       2074,
-       2075,
-       2084,
-       2085,
-       2088,
-       2089,
-       2112,
-       2137,
-       2208,
-       2227,
-       2308,
-       2362,
-       2365,
-       2366,
-       2384,
-       2385,
-       2392,
-       2402,
-       2417,
-       2433,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2493,
-       2494,
-       2510,
-       2511,
-       2524,
-       2526,
-       2527,
-       2530,
-       2544,
-       2546,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2649,
-       2653,
-       2654,
-       2655,
-       2674,
-       2677,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2749,
-       2750,
-       2768,
-       2769,
-       2784,
-       2786,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2877,
-       2878,
-       2908,
-       2910,
-       2911,
-       2914,
-       2929,
-       2930,
-       2947,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3024,
-       3025,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3134,
-       3160,
-       3162,
-       3168,
-       3170,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3261,
-       3262,
-       3294,
-       3295,
-       3296,
-       3298,
-       3313,
-       3315,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3390,
-       3406,
-       3407,
-       3424,
-       3426,
-       3450,
-       3456,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3585,
-       3633,
-       3634,
-       3635,
-       3648,
-       3655,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3761,
-       3762,
-       3763,
-       3773,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3804,
-       3808,
-       3840,
-       3841,
-       3904,
-       3912,
-       3913,
-       3949,
-       3976,
-       3981,
-       4096,
-       4139,
-       4159,
-       4160,
-       4176,
-       4182,
-       4186,
-       4190,
-       4193,
-       4194,
-       4197,
-       4199,
-       4206,
-       4209,
-       4213,
-       4226,
-       4238,
-       4239,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5906,
-       5920,
-       5938,
-       5952,
-       5970,
-       5984,
-       5997,
-       5998,
-       6001,
-       6016,
-       6068,
-       6103,
-       6104,
-       6108,
-       6109,
-       6176,
-       6264,
-       6272,
-       6313,
-       6314,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6480,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6593,
-       6600,
-       6656,
-       6679,
-       6688,
-       6741,
-       6823,
-       6824,
-       6917,
-       6964,
-       6981,
-       6988,
-       7043,
-       7073,
-       7086,
-       7088,
-       7098,
-       7142,
-       7168,
-       7204,
-       7245,
-       7248,
-       7258,
-       7294,
-       7401,
-       7405,
-       7406,
-       7410,
-       7413,
-       7415,
-       7424,
-       7616,
-       7680,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11648,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       12293,
-       12296,
-       12321,
-       12330,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42528,
-       42538,
-       42540,
-       42560,
-       42607,
-       42623,
-       42654,
-       42656,
-       42736,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43010,
-       43011,
-       43014,
-       43015,
-       43019,
-       43020,
-       43043,
-       43072,
-       43124,
-       43138,
-       43188,
-       43250,
-       43256,
-       43259,
-       43260,
-       43274,
-       43302,
-       43312,
-       43335,
-       43360,
-       43389,
-       43396,
-       43443,
-       43471,
-       43472,
-       43488,
-       43493,
-       43494,
-       43504,
-       43514,
-       43519,
-       43520,
-       43561,
-       43584,
-       43587,
-       43588,
-       43596,
-       43616,
-       43639,
-       43642,
-       43643,
-       43646,
-       43696,
-       43697,
-       43698,
-       43701,
-       43703,
-       43705,
-       43710,
-       43712,
-       43713,
-       43714,
-       43715,
-       43739,
-       43742,
-       43744,
-       43755,
-       43762,
-       43765,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44003,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64286,
-       64287,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64606,
-       64612,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65018,
-       65137,
-       65138,
-       65139,
-       65140,
-       65143,
-       65144,
-       65145,
-       65146,
-       65147,
-       65148,
-       65149,
-       65150,
-       65151,
-       65277,
-       65313,
-       65339,
-       65345,
-       65371,
-       65382,
-       65438,
-       65440,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66176,
-       66205,
-       66208,
-       66257,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66422,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68097,
-       68112,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68325,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69635,
-       69688,
-       69763,
-       69808,
-       69840,
-       69865,
-       69891,
-       69927,
-       69968,
-       70003,
-       70006,
-       70007,
-       70019,
-       70067,
-       70081,
-       70085,
-       70106,
-       70107,
-       70144,
-       70162,
-       70163,
-       70188,
-       70320,
-       70367,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70461,
-       70462,
-       70493,
-       70498,
-       70784,
-       70832,
-       70852,
-       70854,
-       70855,
-       70856,
-       71040,
-       71087,
-       71168,
-       71216,
-       71236,
-       71237,
-       71296,
-       71339,
-       71840,
-       71904,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92880,
-       92910,
-       92928,
-       92976,
-       92992,
-       92996,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94033,
-       94099,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       124928,
-       125125,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x6D,
+       0x6E,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xFA,
+       0xFB,
+       0xFF,
+       0x100,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x300,
+       0x375,
+       0x376,
+       0x378,
+       0x37B,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x483,
+       0x488,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x610,
+       0x61B,
+       0x620,
+       0x66A,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x6DD,
+       0x6DF,
+       0x6E9,
+       0x6EA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x74B,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x82E,
+       0x840,
+       0x85C,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE3B,
+       0xE40,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF18,
+       0xF1A,
+       0xF20,
+       0xF2A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF85,
+       0xF86,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x1000,
+       0x104A,
+       0x1050,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1715,
+       0x1720,
+       0x1735,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17D4,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x180B,
+       0x180E,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1946,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A1C,
+       0x1A20,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA7,
+       0x1AA8,
+       0x1AB0,
+       0x1ABE,
+       0x1B00,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1BF4,
+       0x1C00,
+       0x1C38,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C7E,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DF6,
+       0x1DFC,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x203F,
+       0x2041,
+       0x2054,
+       0x2055,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x20D0,
+       0x20DD,
+       0x20E1,
+       0x20E2,
+       0x20E5,
+       0x20F1,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D7F,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x3030,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x309B,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA62C,
+       0xA640,
+       0xA670,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6F2,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA8C5,
+       0xA8D0,
+       0xA8DA,
+       0xA8E0,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA92E,
+       0xA930,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA9C1,
+       0xA9CF,
+       0xA9DA,
+       0xA9E0,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEB,
+       0xABEC,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFC5E,
+       0xFC64,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFA,
+       0xFE00,
+       0xFE10,
+       0xFE20,
+       0xFE2E,
+       0xFE33,
+       0xFE35,
+       0xFE4D,
+       0xFE50,
+       0xFE71,
+       0xFE72,
+       0xFE73,
+       0xFE74,
+       0xFE77,
+       0xFE78,
+       0xFE79,
+       0xFE7A,
+       0xFE7B,
+       0xFE7C,
+       0xFE7D,
+       0xFE7E,
+       0xFE7F,
+       0xFEFD,
+       0xFF10,
+       0xFF1A,
+       0xFF21,
+       0xFF3B,
+       0xFF3F,
+       0xFF40,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x101FD,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102E1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE7,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11047,
+       0x11066,
+       0x11070,
+       0x1107F,
+       0x110BB,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11135,
+       0x11136,
+       0x11140,
+       0x11150,
+       0x11174,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x111C5,
+       0x111D0,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x11238,
+       0x112B0,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115C1,
+       0x11600,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF5,
+       0x16B00,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F8F,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9D,
+       0x1BC9F,
+       0x1D165,
+       0x1D16A,
+       0x1D16D,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8D0,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0100,
+       0xE01F0
 };
 
-static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
-       1291,   /* Number of elements */
+static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 037 */
+       1117,   /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       109,
-       110,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       173,
-       174,
-       175,
-       186,
-       187,
-       193,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       224,
-       226,
-       234,
-       235,
-       250,
-       251,
-       255,
-       256,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       768,
-       885,
-       886,
-       888,
-       891,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1155,
-       1160,
-       1162,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1425,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1480,
-       1488,
-       1515,
-       1520,
-       1523,
-       1552,
-       1563,
-       1568,
-       1642,
-       1646,
-       1748,
-       1749,
-       1757,
-       1759,
-       1769,
-       1770,
-       1789,
-       1791,
-       1792,
-       1808,
-       1867,
-       1869,
-       1970,
-       1984,
-       2038,
-       2042,
-       2043,
-       2048,
-       2094,
-       2112,
-       2140,
-       2208,
-       2227,
-       2276,
-       2404,
-       2406,
-       2416,
-       2417,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2492,
-       2501,
-       2503,
-       2505,
-       2507,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2546,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2620,
-       2621,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2638,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2748,
-       2758,
-       2759,
-       2762,
-       2763,
-       2766,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2800,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2876,
-       2885,
-       2887,
-       2889,
-       2891,
-       2894,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2928,
-       2929,
-       2930,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3022,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3056,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3150,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3260,
-       3269,
-       3270,
-       3273,
-       3274,
-       3278,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3440,
-       3450,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3530,
-       3531,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3572,
-       3585,
-       3643,
-       3648,
-       3663,
-       3664,
-       3674,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3784,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3841,
-       3864,
-       3866,
-       3872,
-       3882,
-       3893,
-       3894,
-       3895,
-       3896,
-       3897,
-       3898,
-       3902,
-       3912,
-       3913,
-       3949,
-       3953,
-       3973,
-       3974,
-       3992,
-       3993,
-       4029,
-       4038,
-       4039,
-       4096,
-       4170,
-       4176,
-       4254,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4957,
-       4960,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5909,
-       5920,
-       5941,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6100,
-       6103,
-       6104,
-       6108,
-       6110,
-       6112,
-       6122,
-       6155,
-       6158,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6460,
-       6470,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6618,
-       6656,
-       6684,
-       6688,
-       6751,
-       6752,
-       6781,
-       6783,
-       6794,
-       6800,
-       6810,
-       6823,
-       6824,
-       6832,
-       6846,
-       6912,
-       6988,
-       6992,
-       7002,
-       7019,
-       7028,
-       7040,
-       7156,
-       7168,
-       7224,
-       7232,
-       7242,
-       7245,
-       7294,
-       7376,
-       7379,
-       7380,
-       7415,
-       7416,
-       7418,
-       7424,
-       7670,
-       7676,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8255,
-       8257,
-       8276,
-       8277,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8400,
-       8413,
-       8417,
-       8418,
-       8421,
-       8433,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11647,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11776,
-       12293,
-       12296,
-       12321,
-       12336,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12441,
-       12443,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42540,
-       42560,
-       42608,
-       42612,
-       42622,
-       42623,
-       42654,
-       42655,
-       42738,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43048,
-       43072,
-       43124,
-       43136,
-       43205,
-       43216,
-       43226,
-       43232,
-       43256,
-       43259,
-       43260,
-       43264,
-       43310,
-       43312,
-       43348,
-       43360,
-       43389,
-       43392,
-       43457,
-       43471,
-       43482,
-       43488,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43616,
-       43639,
-       43642,
-       43715,
-       43739,
-       43742,
-       43744,
-       43760,
-       43762,
-       43767,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44011,
-       44012,
-       44014,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64606,
-       64612,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65018,
-       65024,
-       65040,
-       65056,
-       65070,
-       65075,
-       65077,
-       65101,
-       65104,
-       65137,
-       65138,
-       65139,
-       65140,
-       65143,
-       65144,
-       65145,
-       65146,
-       65147,
-       65148,
-       65149,
-       65150,
-       65151,
-       65277,
-       65296,
-       65306,
-       65313,
-       65339,
-       65343,
-       65344,
-       65345,
-       65371,
-       65382,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66045,
-       66046,
-       66176,
-       66205,
-       66208,
-       66257,
-       66272,
-       66273,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68152,
-       68155,
-       68159,
-       68160,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68327,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69632,
-       69703,
-       69734,
-       69744,
-       69759,
-       69819,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69941,
-       69942,
-       69952,
-       69968,
-       70004,
-       70006,
-       70007,
-       70016,
-       70085,
-       70096,
-       70107,
-       70144,
-       70162,
-       70163,
-       70200,
-       70320,
-       70379,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70460,
-       70469,
-       70471,
-       70473,
-       70475,
-       70478,
-       70487,
-       70488,
-       70493,
-       70500,
-       70502,
-       70509,
-       70512,
-       70517,
-       70784,
-       70854,
-       70855,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71105,
-       71168,
-       71233,
-       71236,
-       71237,
-       71248,
-       71258,
-       71296,
-       71352,
-       71360,
-       71370,
-       71840,
-       71914,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92880,
-       92910,
-       92912,
-       92917,
-       92928,
-       92983,
-       92992,
-       92996,
-       93008,
-       93018,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94095,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113821,
-       113823,
-       119141,
-       119146,
-       119149,
-       119155,
-       119163,
-       119171,
-       119173,
-       119180,
-       119210,
-       119214,
-       119362,
-       119365,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       125136,
-       125143,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102,
-       917760,
-       918000
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x6D,
+       0x6E,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFB,
+       0xFF,
+       0x100,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x370,
+       0x375,
+       0x376,
+       0x378,
+       0x37B,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x620,
+       0x64B,
+       0x66E,
+       0x670,
+       0x671,
+       0x6D4,
+       0x6D5,
+       0x6D6,
+       0x6E5,
+       0x6E7,
+       0x6EE,
+       0x6F0,
+       0x6FA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x711,
+       0x712,
+       0x730,
+       0x74D,
+       0x7A6,
+       0x7B1,
+       0x7B2,
+       0x7CA,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x816,
+       0x81A,
+       0x81B,
+       0x824,
+       0x825,
+       0x828,
+       0x829,
+       0x840,
+       0x859,
+       0x8A0,
+       0x8B3,
+       0x904,
+       0x93A,
+       0x93D,
+       0x93E,
+       0x950,
+       0x951,
+       0x958,
+       0x962,
+       0x971,
+       0x981,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BD,
+       0x9BE,
+       0x9CE,
+       0x9CF,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E2,
+       0x9F0,
+       0x9F2,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA72,
+       0xA75,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABD,
+       0xABE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE2,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3D,
+       0xB3E,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB62,
+       0xB71,
+       0xB72,
+       0xB83,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBD0,
+       0xBD1,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC3E,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC62,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBD,
+       0xCBE,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE2,
+       0xCF1,
+       0xCF3,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD3E,
+       0xD4E,
+       0xD4F,
+       0xD60,
+       0xD62,
+       0xD7A,
+       0xD80,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xE01,
+       0xE31,
+       0xE32,
+       0xE33,
+       0xE40,
+       0xE47,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEB1,
+       0xEB2,
+       0xEB3,
+       0xEBD,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF88,
+       0xF8D,
+       0x1000,
+       0x102B,
+       0x103F,
+       0x1040,
+       0x1050,
+       0x1056,
+       0x105A,
+       0x105E,
+       0x1061,
+       0x1062,
+       0x1065,
+       0x1067,
+       0x106E,
+       0x1071,
+       0x1075,
+       0x1082,
+       0x108E,
+       0x108F,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1712,
+       0x1720,
+       0x1732,
+       0x1740,
+       0x1752,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1780,
+       0x17B4,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DD,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18A9,
+       0x18AA,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1950,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19C1,
+       0x19C8,
+       0x1A00,
+       0x1A17,
+       0x1A20,
+       0x1A55,
+       0x1AA7,
+       0x1AA8,
+       0x1B05,
+       0x1B34,
+       0x1B45,
+       0x1B4C,
+       0x1B83,
+       0x1BA1,
+       0x1BAE,
+       0x1BB0,
+       0x1BBA,
+       0x1BE6,
+       0x1C00,
+       0x1C24,
+       0x1C4D,
+       0x1C50,
+       0x1C5A,
+       0x1C7E,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF2,
+       0x1CF5,
+       0x1CF7,
+       0x1D00,
+       0x1DC0,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x302A,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA620,
+       0xA62A,
+       0xA62C,
+       0xA640,
+       0xA66F,
+       0xA67F,
+       0xA69E,
+       0xA6A0,
+       0xA6F0,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA823,
+       0xA840,
+       0xA874,
+       0xA882,
+       0xA8B4,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA90A,
+       0xA926,
+       0xA930,
+       0xA947,
+       0xA960,
+       0xA97D,
+       0xA984,
+       0xA9B3,
+       0xA9CF,
+       0xA9D0,
+       0xA9E0,
+       0xA9E5,
+       0xA9E6,
+       0xA9F0,
+       0xA9FA,
+       0xA9FF,
+       0xAA00,
+       0xAA29,
+       0xAA40,
+       0xAA43,
+       0xAA44,
+       0xAA4C,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAA7B,
+       0xAA7E,
+       0xAAB0,
+       0xAAB1,
+       0xAAB2,
+       0xAAB5,
+       0xAAB7,
+       0xAAB9,
+       0xAABE,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAEB,
+       0xAAF2,
+       0xAAF5,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABE3,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB1E,
+       0xFB1F,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFC5E,
+       0xFC64,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFA,
+       0xFE71,
+       0xFE72,
+       0xFE73,
+       0xFE74,
+       0xFE77,
+       0xFE78,
+       0xFE79,
+       0xFE7A,
+       0xFE7B,
+       0xFE7C,
+       0xFE7D,
+       0xFE7E,
+       0xFE7F,
+       0xFEFD,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFF9E,
+       0xFFA0,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x10376,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A01,
+       0x10A10,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11003,
+       0x11038,
+       0x11083,
+       0x110B0,
+       0x110D0,
+       0x110E9,
+       0x11103,
+       0x11127,
+       0x11150,
+       0x11173,
+       0x11176,
+       0x11177,
+       0x11183,
+       0x111B3,
+       0x111C1,
+       0x111C5,
+       0x111DA,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1122C,
+       0x112B0,
+       0x112DF,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133D,
+       0x1133E,
+       0x1135D,
+       0x11362,
+       0x11480,
+       0x114B0,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x11580,
+       0x115AF,
+       0x11600,
+       0x11630,
+       0x11644,
+       0x11645,
+       0x11680,
+       0x116AB,
+       0x118A0,
+       0x118E0,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16AD0,
+       0x16AEE,
+       0x16B00,
+       0x16B30,
+       0x16B40,
+       0x16B44,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F51,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1E800,
+       0x1E8C5,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E
 };
 
-#endif /* #ifndef PERL_IN_XSUB_RE */
+#endif /* defined(PERL_IN_UTF8_C) */
 
-#endif /* EBCDIC 1047 */
+#if defined(PERL_IN_PERL_C)
 
-#if 'A' == 193 /* EBCDIC 037 */ \
-     && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
-     && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
-     && '$' == 91 && '@' == 124 && '`' == 121
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV ASCII_invlist[] = { /* for EBCDIC 037 */
-       56,     /* Number of elements */
+static const UV Sentence_Break_invlist[] = { /* for EBCDIC 037 */
+       2855,   /* Number of elements */
        148565664, /* Version and data structure type */
        0,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       4,
-       5,
-       6,
-       7,
-       8,
-       11,
-       20,
-       22,
-       23,
-       24,
-       26,
-       28,
-       32,
-       37,
-       40,
-       45,
-       48,
-       50,
-       51,
-       55,
-       56,
-       60,
-       62,
-       63,
-       65,
-       75,
-       81,
-       90,
-       95,
-       96,
-       98,
-       107,
-       112,
-       121,
-       128,
-       129,
-       138,
-       145,
-       154,
-       161,
-       170,
-       176,
-       177,
-       186,
-       188,
-       192,
-       202,
-       208,
-       218,
-       224,
-       225,
-       226,
-       234,
-       240,
-       250
+       0x0,
+       0x5,
+       0x6,
+       0xB,
+       0xD,
+       0xE,
+       0x15,
+       0x16,
+       0x25,
+       0x26,
+       0x40,
+       0x42,
+       0x4A,
+       0x4B,
+       0x4C,
+       0x4D,
+       0x4E,
+       0x51,
+       0x5A,
+       0x5B,
+       0x5D,
+       0x5E,
+       0x60,
+       0x61,
+       0x62,
+       0x6A,
+       0x6B,
+       0x6C,
+       0x6F,
+       0x70,
+       0x71,
+       0x79,
+       0x7A,
+       0x7B,
+       0x7D,
+       0x7E,
+       0x7F,
+       0x80,
+       0x81,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xBA,
+       0xBC,
+       0xC0,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFA,
+       0xFB,
+       0xFF,
+       0x100,
+       0x101,
+       0x102,
+       0x103,
+       0x104,
+       0x105,
+       0x106,
+       0x107,
+       0x108,
+       0x109,
+       0x10A,
+       0x10B,
+       0x10C,
+       0x10D,
+       0x10E,
+       0x10F,
+       0x110,
+       0x111,
+       0x112,
+       0x113,
+       0x114,
+       0x115,
+       0x116,
+       0x117,
+       0x118,
+       0x119,
+       0x11A,
+       0x11B,
+       0x11C,
+       0x11D,
+       0x11E,
+       0x11F,
+       0x120,
+       0x121,
+       0x122,
+       0x123,
+       0x124,
+       0x125,
+       0x126,
+       0x127,
+       0x128,
+       0x129,
+       0x12A,
+       0x12B,
+       0x12C,
+       0x12D,
+       0x12E,
+       0x12F,
+       0x130,
+       0x131,
+       0x132,
+       0x133,
+       0x134,
+       0x135,
+       0x136,
+       0x137,
+       0x139,
+       0x13A,
+       0x13B,
+       0x13C,
+       0x13D,
+       0x13E,
+       0x13F,
+       0x140,
+       0x141,
+       0x142,
+       0x143,
+       0x144,
+       0x145,
+       0x146,
+       0x147,
+       0x148,
+       0x14A,
+       0x14B,
+       0x14C,
+       0x14D,
+       0x14E,
+       0x14F,
+       0x150,
+       0x151,
+       0x152,
+       0x153,
+       0x154,
+       0x155,
+       0x156,
+       0x157,
+       0x158,
+       0x159,
+       0x15A,
+       0x15B,
+       0x15C,
+       0x15D,
+       0x15E,
+       0x15F,
+       0x160,
+       0x161,
+       0x162,
+       0x163,
+       0x164,
+       0x165,
+       0x166,
+       0x167,
+       0x168,
+       0x169,
+       0x16A,
+       0x16B,
+       0x16C,
+       0x16D,
+       0x16E,
+       0x16F,
+       0x170,
+       0x171,
+       0x172,
+       0x173,
+       0x174,
+       0x175,
+       0x176,
+       0x177,
+       0x178,
+       0x17A,
+       0x17B,
+       0x17C,
+       0x17D,
+       0x17E,
+       0x181,
+       0x183,
+       0x184,
+       0x185,
+       0x186,
+       0x188,
+       0x189,
+       0x18C,
+       0x18E,
+       0x192,
+       0x193,
+       0x195,
+       0x196,
+       0x199,
+       0x19C,
+       0x19E,
+       0x19F,
+       0x1A1,
+       0x1A2,
+       0x1A3,
+       0x1A4,
+       0x1A5,
+       0x1A6,
+       0x1A8,
+       0x1A9,
+       0x1AA,
+       0x1AC,
+       0x1AD,
+       0x1AE,
+       0x1B0,
+       0x1B1,
+       0x1B4,
+       0x1B5,
+       0x1B6,
+       0x1B7,
+       0x1B9,
+       0x1BB,
+       0x1BC,
+       0x1BD,
+       0x1C0,
+       0x1C4,
+       0x1C6,
+       0x1C7,
+       0x1C9,
+       0x1CA,
+       0x1CC,
+       0x1CD,
+       0x1CE,
+       0x1CF,
+       0x1D0,
+       0x1D1,
+       0x1D2,
+       0x1D3,
+       0x1D4,
+       0x1D5,
+       0x1D6,
+       0x1D7,
+       0x1D8,
+       0x1D9,
+       0x1DA,
+       0x1DB,
+       0x1DC,
+       0x1DE,
+       0x1DF,
+       0x1E0,
+       0x1E1,
+       0x1E2,
+       0x1E3,
+       0x1E4,
+       0x1E5,
+       0x1E6,
+       0x1E7,
+       0x1E8,
+       0x1E9,
+       0x1EA,
+       0x1EB,
+       0x1EC,
+       0x1ED,
+       0x1EE,
+       0x1EF,
+       0x1F1,
+       0x1F3,
+       0x1F4,
+       0x1F5,
+       0x1F6,
+       0x1F9,
+       0x1FA,
+       0x1FB,
+       0x1FC,
+       0x1FD,
+       0x1FE,
+       0x1FF,
+       0x200,
+       0x201,
+       0x202,
+       0x203,
+       0x204,
+       0x205,
+       0x206,
+       0x207,
+       0x208,
+       0x209,
+       0x20A,
+       0x20B,
+       0x20C,
+       0x20D,
+       0x20E,
+       0x20F,
+       0x210,
+       0x211,
+       0x212,
+       0x213,
+       0x214,
+       0x215,
+       0x216,
+       0x217,
+       0x218,
+       0x219,
+       0x21A,
+       0x21B,
+       0x21C,
+       0x21D,
+       0x21E,
+       0x21F,
+       0x220,
+       0x221,
+       0x222,
+       0x223,
+       0x224,
+       0x225,
+       0x226,
+       0x227,
+       0x228,
+       0x229,
+       0x22A,
+       0x22B,
+       0x22C,
+       0x22D,
+       0x22E,
+       0x22F,
+       0x230,
+       0x231,
+       0x232,
+       0x233,
+       0x23A,
+       0x23C,
+       0x23D,
+       0x23F,
+       0x241,
+       0x242,
+       0x243,
+       0x247,
+       0x248,
+       0x249,
+       0x24A,
+       0x24B,
+       0x24C,
+       0x24D,
+       0x24E,
+       0x24F,
+       0x294,
+       0x295,
+       0x2B9,
+       0x2C0,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x300,
+       0x370,
+       0x371,
+       0x372,
+       0x373,
+       0x374,
+       0x375,
+       0x376,
+       0x377,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x390,
+       0x391,
+       0x3A2,
+       0x3A3,
+       0x3AC,
+       0x3CF,
+       0x3D0,
+       0x3D2,
+       0x3D5,
+       0x3D8,
+       0x3D9,
+       0x3DA,
+       0x3DB,
+       0x3DC,
+       0x3DD,
+       0x3DE,
+       0x3DF,
+       0x3E0,
+       0x3E1,
+       0x3E2,
+       0x3E3,
+       0x3E4,
+       0x3E5,
+       0x3E6,
+       0x3E7,
+       0x3E8,
+       0x3E9,
+       0x3EA,
+       0x3EB,
+       0x3EC,
+       0x3ED,
+       0x3EE,
+       0x3EF,
+       0x3F4,
+       0x3F5,
+       0x3F6,
+       0x3F7,
+       0x3F8,
+       0x3F9,
+       0x3FB,
+       0x3FD,
+       0x430,
+       0x460,
+       0x461,
+       0x462,
+       0x463,
+       0x464,
+       0x465,
+       0x466,
+       0x467,
+       0x468,
+       0x469,
+       0x46A,
+       0x46B,
+       0x46C,
+       0x46D,
+       0x46E,
+       0x46F,
+       0x470,
+       0x471,
+       0x472,
+       0x473,
+       0x474,
+       0x475,
+       0x476,
+       0x477,
+       0x478,
+       0x479,
+       0x47A,
+       0x47B,
+       0x47C,
+       0x47D,
+       0x47E,
+       0x47F,
+       0x480,
+       0x481,
+       0x482,
+       0x483,
+       0x48A,
+       0x48B,
+       0x48C,
+       0x48D,
+       0x48E,
+       0x48F,
+       0x490,
+       0x491,
+       0x492,
+       0x493,
+       0x494,
+       0x495,
+       0x496,
+       0x497,
+       0x498,
+       0x499,
+       0x49A,
+       0x49B,
+       0x49C,
+       0x49D,
+       0x49E,
+       0x49F,
+       0x4A0,
+       0x4A1,
+       0x4A2,
+       0x4A3,
+       0x4A4,
+       0x4A5,
+       0x4A6,
+       0x4A7,
+       0x4A8,
+       0x4A9,
+       0x4AA,
+       0x4AB,
+       0x4AC,
+       0x4AD,
+       0x4AE,
+       0x4AF,
+       0x4B0,
+       0x4B1,
+       0x4B2,
+       0x4B3,
+       0x4B4,
+       0x4B5,
+       0x4B6,
+       0x4B7,
+       0x4B8,
+       0x4B9,
+       0x4BA,
+       0x4BB,
+       0x4BC,
+       0x4BD,
+       0x4BE,
+       0x4BF,
+       0x4C0,
+       0x4C2,
+       0x4C3,
+       0x4C4,
+       0x4C5,
+       0x4C6,
+       0x4C7,
+       0x4C8,
+       0x4C9,
+       0x4CA,
+       0x4CB,
+       0x4CC,
+       0x4CD,
+       0x4CE,
+       0x4D0,
+       0x4D1,
+       0x4D2,
+       0x4D3,
+       0x4D4,
+       0x4D5,
+       0x4D6,
+       0x4D7,
+       0x4D8,
+       0x4D9,
+       0x4DA,
+       0x4DB,
+       0x4DC,
+       0x4DD,
+       0x4DE,
+       0x4DF,
+       0x4E0,
+       0x4E1,
+       0x4E2,
+       0x4E3,
+       0x4E4,
+       0x4E5,
+       0x4E6,
+       0x4E7,
+       0x4E8,
+       0x4E9,
+       0x4EA,
+       0x4EB,
+       0x4EC,
+       0x4ED,
+       0x4EE,
+       0x4EF,
+       0x4F0,
+       0x4F1,
+       0x4F2,
+       0x4F3,
+       0x4F4,
+       0x4F5,
+       0x4F6,
+       0x4F7,
+       0x4F8,
+       0x4F9,
+       0x4FA,
+       0x4FB,
+       0x4FC,
+       0x4FD,
+       0x4FE,
+       0x4FF,
+       0x500,
+       0x501,
+       0x502,
+       0x503,
+       0x504,
+       0x505,
+       0x506,
+       0x507,
+       0x508,
+       0x509,
+       0x50A,
+       0x50B,
+       0x50C,
+       0x50D,
+       0x50E,
+       0x50F,
+       0x510,
+       0x511,
+       0x512,
+       0x513,
+       0x514,
+       0x515,
+       0x516,
+       0x517,
+       0x518,
+       0x519,
+       0x51A,
+       0x51B,
+       0x51C,
+       0x51D,
+       0x51E,
+       0x51F,
+       0x520,
+       0x521,
+       0x522,
+       0x523,
+       0x524,
+       0x525,
+       0x526,
+       0x527,
+       0x528,
+       0x529,
+       0x52A,
+       0x52B,
+       0x52C,
+       0x52D,
+       0x52E,
+       0x52F,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x55D,
+       0x55E,
+       0x561,
+       0x588,
+       0x589,
+       0x58A,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F4,
+       0x600,
+       0x606,
+       0x60C,
+       0x60E,
+       0x610,
+       0x61B,
+       0x61C,
+       0x61D,
+       0x61F,
+       0x620,
+       0x64B,
+       0x660,
+       0x66A,
+       0x66B,
+       0x66D,
+       0x66E,
+       0x670,
+       0x671,
+       0x6D4,
+       0x6D5,
+       0x6D6,
+       0x6DD,
+       0x6DE,
+       0x6DF,
+       0x6E5,
+       0x6E7,
+       0x6E9,
+       0x6EA,
+       0x6EE,
+       0x6F0,
+       0x6FA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x703,
+       0x70F,
+       0x710,
+       0x711,
+       0x712,
+       0x730,
+       0x74B,
+       0x74D,
+       0x7A6,
+       0x7B1,
+       0x7B2,
+       0x7C0,
+       0x7CA,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7F8,
+       0x7F9,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x816,
+       0x81A,
+       0x81B,
+       0x824,
+       0x825,
+       0x828,
+       0x829,
+       0x82E,
+       0x840,
+       0x859,
+       0x85C,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x904,
+       0x93A,
+       0x93D,
+       0x93E,
+       0x950,
+       0x951,
+       0x958,
+       0x962,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x981,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9BD,
+       0x9BE,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CE,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E2,
+       0x9E4,
+       0x9E6,
+       0x9F0,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA70,
+       0xA72,
+       0xA75,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xABD,
+       0xABE,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE2,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB3D,
+       0xB3E,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB62,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB83,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC3E,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC62,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCBD,
+       0xCBE,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE2,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD3E,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4E,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD62,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE31,
+       0xE32,
+       0xE34,
+       0xE3B,
+       0xE40,
+       0xE47,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEB1,
+       0xEB2,
+       0xEB4,
+       0xEBA,
+       0xEBB,
+       0xEBD,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF18,
+       0xF1A,
+       0xF20,
+       0xF2A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF85,
+       0xF86,
+       0xF88,
+       0xF8D,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x1000,
+       0x102B,
+       0x103F,
+       0x1040,
+       0x104A,
+       0x104C,
+       0x1050,
+       0x1056,
+       0x105A,
+       0x105E,
+       0x1061,
+       0x1062,
+       0x1065,
+       0x1067,
+       0x106E,
+       0x1071,
+       0x1075,
+       0x1082,
+       0x108E,
+       0x108F,
+       0x1090,
+       0x109A,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x1360,
+       0x1362,
+       0x1363,
+       0x1367,
+       0x1369,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166E,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x169D,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1712,
+       0x1715,
+       0x1720,
+       0x1732,
+       0x1735,
+       0x1737,
+       0x1740,
+       0x1752,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17B4,
+       0x17D4,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DD,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x1802,
+       0x1803,
+       0x1804,
+       0x1808,
+       0x1809,
+       0x180A,
+       0x180B,
+       0x180E,
+       0x180F,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18A9,
+       0x18AA,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1944,
+       0x1946,
+       0x1950,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19C1,
+       0x19C8,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A17,
+       0x1A1C,
+       0x1A20,
+       0x1A55,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A80,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA7,
+       0x1AA8,
+       0x1AAC,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B05,
+       0x1B34,
+       0x1B45,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B5C,
+       0x1B5E,
+       0x1B60,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1B83,
+       0x1BA1,
+       0x1BAE,
+       0x1BB0,
+       0x1BBA,
+       0x1BE6,
+       0x1BF4,
+       0x1C00,
+       0x1C24,
+       0x1C38,
+       0x1C3B,
+       0x1C3D,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C50,
+       0x1C5A,
+       0x1C7E,
+       0x1C80,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF2,
+       0x1CF5,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DC0,
+       0x1DF6,
+       0x1DFC,
+       0x1E00,
+       0x1E01,
+       0x1E02,
+       0x1E03,
+       0x1E04,
+       0x1E05,
+       0x1E06,
+       0x1E07,
+       0x1E08,
+       0x1E09,
+       0x1E0A,
+       0x1E0B,
+       0x1E0C,
+       0x1E0D,
+       0x1E0E,
+       0x1E0F,
+       0x1E10,
+       0x1E11,
+       0x1E12,
+       0x1E13,
+       0x1E14,
+       0x1E15,
+       0x1E16,
+       0x1E17,
+       0x1E18,
+       0x1E19,
+       0x1E1A,
+       0x1E1B,
+       0x1E1C,
+       0x1E1D,
+       0x1E1E,
+       0x1E1F,
+       0x1E20,
+       0x1E21,
+       0x1E22,
+       0x1E23,
+       0x1E24,
+       0x1E25,
+       0x1E26,
+       0x1E27,
+       0x1E28,
+       0x1E29,
+       0x1E2A,
+       0x1E2B,
+       0x1E2C,
+       0x1E2D,
+       0x1E2E,
+       0x1E2F,
+       0x1E30,
+       0x1E31,
+       0x1E32,
+       0x1E33,
+       0x1E34,
+       0x1E35,
+       0x1E36,
+       0x1E37,
+       0x1E38,
+       0x1E39,
+       0x1E3A,
+       0x1E3B,
+       0x1E3C,
+       0x1E3D,
+       0x1E3E,
+       0x1E3F,
+       0x1E40,
+       0x1E41,
+       0x1E42,
+       0x1E43,
+       0x1E44,
+       0x1E45,
+       0x1E46,
+       0x1E47,
+       0x1E48,
+       0x1E49,
+       0x1E4A,
+       0x1E4B,
+       0x1E4C,
+       0x1E4D,
+       0x1E4E,
+       0x1E4F,
+       0x1E50,
+       0x1E51,
+       0x1E52,
+       0x1E53,
+       0x1E54,
+       0x1E55,
+       0x1E56,
+       0x1E57,
+       0x1E58,
+       0x1E59,
+       0x1E5A,
+       0x1E5B,
+       0x1E5C,
+       0x1E5D,
+       0x1E5E,
+       0x1E5F,
+       0x1E60,
+       0x1E61,
+       0x1E62,
+       0x1E63,
+       0x1E64,
+       0x1E65,
+       0x1E66,
+       0x1E67,
+       0x1E68,
+       0x1E69,
+       0x1E6A,
+       0x1E6B,
+       0x1E6C,
+       0x1E6D,
+       0x1E6E,
+       0x1E6F,
+       0x1E70,
+       0x1E71,
+       0x1E72,
+       0x1E73,
+       0x1E74,
+       0x1E75,
+       0x1E76,
+       0x1E77,
+       0x1E78,
+       0x1E79,
+       0x1E7A,
+       0x1E7B,
+       0x1E7C,
+       0x1E7D,
+       0x1E7E,
+       0x1E7F,
+       0x1E80,
+       0x1E81,
+       0x1E82,
+       0x1E83,
+       0x1E84,
+       0x1E85,
+       0x1E86,
+       0x1E87,
+       0x1E88,
+       0x1E89,
+       0x1E8A,
+       0x1E8B,
+       0x1E8C,
+       0x1E8D,
+       0x1E8E,
+       0x1E8F,
+       0x1E90,
+       0x1E91,
+       0x1E92,
+       0x1E93,
+       0x1E94,
+       0x1E95,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1EA1,
+       0x1EA2,
+       0x1EA3,
+       0x1EA4,
+       0x1EA5,
+       0x1EA6,
+       0x1EA7,
+       0x1EA8,
+       0x1EA9,
+       0x1EAA,
+       0x1EAB,
+       0x1EAC,
+       0x1EAD,
+       0x1EAE,
+       0x1EAF,
+       0x1EB0,
+       0x1EB1,
+       0x1EB2,
+       0x1EB3,
+       0x1EB4,
+       0x1EB5,
+       0x1EB6,
+       0x1EB7,
+       0x1EB8,
+       0x1EB9,
+       0x1EBA,
+       0x1EBB,
+       0x1EBC,
+       0x1EBD,
+       0x1EBE,
+       0x1EBF,
+       0x1EC0,
+       0x1EC1,
+       0x1EC2,
+       0x1EC3,
+       0x1EC4,
+       0x1EC5,
+       0x1EC6,
+       0x1EC7,
+       0x1EC8,
+       0x1EC9,
+       0x1ECA,
+       0x1ECB,
+       0x1ECC,
+       0x1ECD,
+       0x1ECE,
+       0x1ECF,
+       0x1ED0,
+       0x1ED1,
+       0x1ED2,
+       0x1ED3,
+       0x1ED4,
+       0x1ED5,
+       0x1ED6,
+       0x1ED7,
+       0x1ED8,
+       0x1ED9,
+       0x1EDA,
+       0x1EDB,
+       0x1EDC,
+       0x1EDD,
+       0x1EDE,
+       0x1EDF,
+       0x1EE0,
+       0x1EE1,
+       0x1EE2,
+       0x1EE3,
+       0x1EE4,
+       0x1EE5,
+       0x1EE6,
+       0x1EE7,
+       0x1EE8,
+       0x1EE9,
+       0x1EEA,
+       0x1EEB,
+       0x1EEC,
+       0x1EED,
+       0x1EEE,
+       0x1EEF,
+       0x1EF0,
+       0x1EF1,
+       0x1EF2,
+       0x1EF3,
+       0x1EF4,
+       0x1EF5,
+       0x1EF6,
+       0x1EF7,
+       0x1EF8,
+       0x1EF9,
+       0x1EFA,
+       0x1EFB,
+       0x1EFC,
+       0x1EFD,
+       0x1EFE,
+       0x1EFF,
+       0x1F08,
+       0x1F10,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F28,
+       0x1F30,
+       0x1F38,
+       0x1F40,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1F7E,
+       0x1F80,
+       0x1F88,
+       0x1F90,
+       0x1F98,
+       0x1FA0,
+       0x1FA8,
+       0x1FB0,
+       0x1FB5,
+       0x1FB6,
+       0x1FB8,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FC8,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FD8,
+       0x1FDC,
+       0x1FE0,
+       0x1FE8,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FF8,
+       0x1FFD,
+       0x2000,
+       0x200B,
+       0x200C,
+       0x200E,
+       0x2010,
+       0x2013,
+       0x2015,
+       0x2018,
+       0x2020,
+       0x2024,
+       0x2025,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x2030,
+       0x2039,
+       0x203B,
+       0x203C,
+       0x203E,
+       0x2045,
+       0x2047,
+       0x204A,
+       0x205F,
+       0x2060,
+       0x2065,
+       0x2066,
+       0x2070,
+       0x2071,
+       0x2072,
+       0x207D,
+       0x207F,
+       0x2080,
+       0x208D,
+       0x208F,
+       0x2090,
+       0x209D,
+       0x20D0,
+       0x20F1,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x210B,
+       0x210E,
+       0x2110,
+       0x2113,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x2130,
+       0x2134,
+       0x2135,
+       0x2139,
+       0x213A,
+       0x213C,
+       0x213E,
+       0x2140,
+       0x2145,
+       0x2146,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2170,
+       0x2180,
+       0x2183,
+       0x2184,
+       0x2185,
+       0x2189,
+       0x2308,
+       0x230C,
+       0x2329,
+       0x232B,
+       0x24B6,
+       0x24D0,
+       0x24EA,
+       0x275B,
+       0x2761,
+       0x2768,
+       0x2776,
+       0x27C5,
+       0x27C7,
+       0x27E6,
+       0x27F0,
+       0x2983,
+       0x2999,
+       0x29D8,
+       0x29DC,
+       0x29FC,
+       0x29FE,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2C61,
+       0x2C62,
+       0x2C65,
+       0x2C67,
+       0x2C68,
+       0x2C69,
+       0x2C6A,
+       0x2C6B,
+       0x2C6C,
+       0x2C6D,
+       0x2C71,
+       0x2C72,
+       0x2C73,
+       0x2C75,
+       0x2C76,
+       0x2C7E,
+       0x2C81,
+       0x2C82,
+       0x2C83,
+       0x2C84,
+       0x2C85,
+       0x2C86,
+       0x2C87,
+       0x2C88,
+       0x2C89,
+       0x2C8A,
+       0x2C8B,
+       0x2C8C,
+       0x2C8D,
+       0x2C8E,
+       0x2C8F,
+       0x2C90,
+       0x2C91,
+       0x2C92,
+       0x2C93,
+       0x2C94,
+       0x2C95,
+       0x2C96,
+       0x2C97,
+       0x2C98,
+       0x2C99,
+       0x2C9A,
+       0x2C9B,
+       0x2C9C,
+       0x2C9D,
+       0x2C9E,
+       0x2C9F,
+       0x2CA0,
+       0x2CA1,
+       0x2CA2,
+       0x2CA3,
+       0x2CA4,
+       0x2CA5,
+       0x2CA6,
+       0x2CA7,
+       0x2CA8,
+       0x2CA9,
+       0x2CAA,
+       0x2CAB,
+       0x2CAC,
+       0x2CAD,
+       0x2CAE,
+       0x2CAF,
+       0x2CB0,
+       0x2CB1,
+       0x2CB2,
+       0x2CB3,
+       0x2CB4,
+       0x2CB5,
+       0x2CB6,
+       0x2CB7,
+       0x2CB8,
+       0x2CB9,
+       0x2CBA,
+       0x2CBB,
+       0x2CBC,
+       0x2CBD,
+       0x2CBE,
+       0x2CBF,
+       0x2CC0,
+       0x2CC1,
+       0x2CC2,
+       0x2CC3,
+       0x2CC4,
+       0x2CC5,
+       0x2CC6,
+       0x2CC7,
+       0x2CC8,
+       0x2CC9,
+       0x2CCA,
+       0x2CCB,
+       0x2CCC,
+       0x2CCD,
+       0x2CCE,
+       0x2CCF,
+       0x2CD0,
+       0x2CD1,
+       0x2CD2,
+       0x2CD3,
+       0x2CD4,
+       0x2CD5,
+       0x2CD6,
+       0x2CD7,
+       0x2CD8,
+       0x2CD9,
+       0x2CDA,
+       0x2CDB,
+       0x2CDC,
+       0x2CDD,
+       0x2CDE,
+       0x2CDF,
+       0x2CE0,
+       0x2CE1,
+       0x2CE2,
+       0x2CE3,
+       0x2CE5,
+       0x2CEB,
+       0x2CEC,
+       0x2CED,
+       0x2CEE,
+       0x2CEF,
+       0x2CF2,
+       0x2CF3,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D7F,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E0E,
+       0x2E1C,
+       0x2E1E,
+       0x2E20,
+       0x2E2A,
+       0x2E2E,
+       0x2E2F,
+       0x2E30,
+       0x2E3C,
+       0x2E3D,
+       0x2E42,
+       0x2E43,
+       0x3000,
+       0x3001,
+       0x3002,
+       0x3003,
+       0x3005,
+       0x3008,
+       0x3012,
+       0x3014,
+       0x301C,
+       0x301D,
+       0x3020,
+       0x3021,
+       0x302A,
+       0x3030,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x309B,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA4FF,
+       0xA500,
+       0xA60D,
+       0xA60E,
+       0xA610,
+       0xA620,
+       0xA62A,
+       0xA62C,
+       0xA640,
+       0xA641,
+       0xA642,
+       0xA643,
+       0xA644,
+       0xA645,
+       0xA646,
+       0xA647,
+       0xA648,
+       0xA649,
+       0xA64A,
+       0xA64B,
+       0xA64C,
+       0xA64D,
+       0xA64E,
+       0xA64F,
+       0xA650,
+       0xA651,
+       0xA652,
+       0xA653,
+       0xA654,
+       0xA655,
+       0xA656,
+       0xA657,
+       0xA658,
+       0xA659,
+       0xA65A,
+       0xA65B,
+       0xA65C,
+       0xA65D,
+       0xA65E,
+       0xA65F,
+       0xA660,
+       0xA661,
+       0xA662,
+       0xA663,
+       0xA664,
+       0xA665,
+       0xA666,
+       0xA667,
+       0xA668,
+       0xA669,
+       0xA66A,
+       0xA66B,
+       0xA66C,
+       0xA66D,
+       0xA66E,
+       0xA66F,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA680,
+       0xA681,
+       0xA682,
+       0xA683,
+       0xA684,
+       0xA685,
+       0xA686,
+       0xA687,
+       0xA688,
+       0xA689,
+       0xA68A,
+       0xA68B,
+       0xA68C,
+       0xA68D,
+       0xA68E,
+       0xA68F,
+       0xA690,
+       0xA691,
+       0xA692,
+       0xA693,
+       0xA694,
+       0xA695,
+       0xA696,
+       0xA697,
+       0xA698,
+       0xA699,
+       0xA69A,
+       0xA69B,
+       0xA69E,
+       0xA69F,
+       0xA6A0,
+       0xA6F0,
+       0xA6F2,
+       0xA6F3,
+       0xA6F4,
+       0xA6F7,
+       0xA6F8,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA723,
+       0xA724,
+       0xA725,
+       0xA726,
+       0xA727,
+       0xA728,
+       0xA729,
+       0xA72A,
+       0xA72B,
+       0xA72C,
+       0xA72D,
+       0xA72E,
+       0xA72F,
+       0xA732,
+       0xA733,
+       0xA734,
+       0xA735,
+       0xA736,
+       0xA737,
+       0xA738,
+       0xA739,
+       0xA73A,
+       0xA73B,
+       0xA73C,
+       0xA73D,
+       0xA73E,
+       0xA73F,
+       0xA740,
+       0xA741,
+       0xA742,
+       0xA743,
+       0xA744,
+       0xA745,
+       0xA746,
+       0xA747,
+       0xA748,
+       0xA749,
+       0xA74A,
+       0xA74B,
+       0xA74C,
+       0xA74D,
+       0xA74E,
+       0xA74F,
+       0xA750,
+       0xA751,
+       0xA752,
+       0xA753,
+       0xA754,
+       0xA755,
+       0xA756,
+       0xA757,
+       0xA758,
+       0xA759,
+       0xA75A,
+       0xA75B,
+       0xA75C,
+       0xA75D,
+       0xA75E,
+       0xA75F,
+       0xA760,
+       0xA761,
+       0xA762,
+       0xA763,
+       0xA764,
+       0xA765,
+       0xA766,
+       0xA767,
+       0xA768,
+       0xA769,
+       0xA76A,
+       0xA76B,
+       0xA76C,
+       0xA76D,
+       0xA76E,
+       0xA76F,
+       0xA779,
+       0xA77A,
+       0xA77B,
+       0xA77C,
+       0xA77D,
+       0xA77F,
+       0xA780,
+       0xA781,
+       0xA782,
+       0xA783,
+       0xA784,
+       0xA785,
+       0xA786,
+       0xA787,
+       0xA788,
+       0xA789,
+       0xA78B,
+       0xA78C,
+       0xA78D,
+       0xA78E,
+       0xA78F,
+       0xA790,
+       0xA791,
+       0xA792,
+       0xA793,
+       0xA796,
+       0xA797,
+       0xA798,
+       0xA799,
+       0xA79A,
+       0xA79B,
+       0xA79C,
+       0xA79D,
+       0xA79E,
+       0xA79F,
+       0xA7A0,
+       0xA7A1,
+       0xA7A2,
+       0xA7A3,
+       0xA7A4,
+       0xA7A5,
+       0xA7A6,
+       0xA7A7,
+       0xA7A8,
+       0xA7A9,
+       0xA7AA,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA7F8,
+       0xA7FB,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA823,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA876,
+       0xA878,
+       0xA880,
+       0xA882,
+       0xA8B4,
+       0xA8C5,
+       0xA8CE,
+       0xA8D0,
+       0xA8DA,
+       0xA8E0,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA90A,
+       0xA926,
+       0xA92E,
+       0xA92F,
+       0xA930,
+       0xA947,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA984,
+       0xA9B3,
+       0xA9C1,
+       0xA9C8,
+       0xA9CA,
+       0xA9CF,
+       0xA9D0,
+       0xA9DA,
+       0xA9E0,
+       0xA9E5,
+       0xA9E6,
+       0xA9F0,
+       0xA9FA,
+       0xA9FF,
+       0xAA00,
+       0xAA29,
+       0xAA37,
+       0xAA40,
+       0xAA43,
+       0xAA44,
+       0xAA4C,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA5D,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAA7B,
+       0xAA7E,
+       0xAAB0,
+       0xAAB1,
+       0xAAB2,
+       0xAAB5,
+       0xAAB7,
+       0xAAB9,
+       0xAABE,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAEB,
+       0xAAF0,
+       0xAAF2,
+       0xAAF5,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABE3,
+       0xABEB,
+       0xABEC,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB1E,
+       0xFB1F,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD40,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE00,
+       0xFE10,
+       0xFE12,
+       0xFE13,
+       0xFE14,
+       0xFE17,
+       0xFE19,
+       0xFE20,
+       0xFE2E,
+       0xFE31,
+       0xFE33,
+       0xFE35,
+       0xFE45,
+       0xFE47,
+       0xFE49,
+       0xFE50,
+       0xFE52,
+       0xFE53,
+       0xFE55,
+       0xFE56,
+       0xFE58,
+       0xFE59,
+       0xFE5F,
+       0xFE63,
+       0xFE64,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFEFF,
+       0xFF00,
+       0xFF01,
+       0xFF02,
+       0xFF08,
+       0xFF0A,
+       0xFF0C,
+       0xFF0E,
+       0xFF0F,
+       0xFF1A,
+       0xFF1B,
+       0xFF1F,
+       0xFF20,
+       0xFF21,
+       0xFF3B,
+       0xFF3C,
+       0xFF3D,
+       0xFF3E,
+       0xFF41,
+       0xFF5B,
+       0xFF5C,
+       0xFF5D,
+       0xFF5E,
+       0xFF5F,
+       0xFF61,
+       0xFF62,
+       0xFF64,
+       0xFF65,
+       0xFF66,
+       0xFF9E,
+       0xFFA0,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0xFFF9,
+       0xFFFC,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x101FD,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102E1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x10376,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x10428,
+       0x10450,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A01,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A10,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10A56,
+       0x10A58,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10AE7,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11003,
+       0x11038,
+       0x11047,
+       0x11049,
+       0x11066,
+       0x11070,
+       0x1107F,
+       0x11083,
+       0x110B0,
+       0x110BB,
+       0x110BD,
+       0x110BE,
+       0x110C2,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11103,
+       0x11127,
+       0x11135,
+       0x11136,
+       0x11140,
+       0x11141,
+       0x11144,
+       0x11150,
+       0x11173,
+       0x11174,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x11183,
+       0x111B3,
+       0x111C1,
+       0x111C5,
+       0x111C7,
+       0x111CD,
+       0x111CE,
+       0x111D0,
+       0x111DA,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1122C,
+       0x11238,
+       0x1123A,
+       0x1123B,
+       0x1123D,
+       0x112B0,
+       0x112DF,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x1133D,
+       0x1133E,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11362,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114B0,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115AF,
+       0x115B6,
+       0x115B8,
+       0x115C1,
+       0x115C2,
+       0x115C4,
+       0x115C9,
+       0x115CA,
+       0x11600,
+       0x11630,
+       0x11641,
+       0x11643,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116AB,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118C0,
+       0x118E0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16A6E,
+       0x16A70,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF5,
+       0x16AF6,
+       0x16B00,
+       0x16B30,
+       0x16B37,
+       0x16B39,
+       0x16B40,
+       0x16B44,
+       0x16B45,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F51,
+       0x16F7F,
+       0x16F8F,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9D,
+       0x1BC9F,
+       0x1BCA0,
+       0x1BCA4,
+       0x1D165,
+       0x1D16A,
+       0x1D16D,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1D400,
+       0x1D41A,
+       0x1D434,
+       0x1D44E,
+       0x1D455,
+       0x1D456,
+       0x1D468,
+       0x1D482,
+       0x1D49C,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4B6,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D4D0,
+       0x1D4EA,
+       0x1D504,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D538,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D56C,
+       0x1D586,
+       0x1D5A0,
+       0x1D5BA,
+       0x1D5D4,
+       0x1D5EE,
+       0x1D608,
+       0x1D622,
+       0x1D63C,
+       0x1D656,
+       0x1D670,
+       0x1D68A,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6E2,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D71C,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D756,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D790,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CA,
+       0x1D7CB,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8D0,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x1F676,
+       0x1F679,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0001,
+       0xE0002,
+       0xE0020,
+       0xE0080,
+       0xE0100,
+       0xE01F0
 };
 
-static const UV Cased_invlist[] = { /* for EBCDIC 037 */
-       277,    /* Number of elements */
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define PL_SB_ENUM_COUNT 16
+
+typedef enum {
+       PL_SB_Other = 0,
+       PL_SB_ATerm = 1,
+       PL_SB_CR = 2,
+       PL_SB_Close = 3,
+       PL_SB_EDGE = 4,
+       PL_SB_Extend = 5,
+       PL_SB_Format = 6,
+       PL_SB_LF = 7,
+       PL_SB_Lower = 8,
+       PL_SB_Numeric = 9,
+       PL_SB_OLetter = 10,
+       PL_SB_SContinue = 11,
+       PL_SB_STerm = 12,
+       PL_SB_Sep = 13,
+       PL_SB_Sp = 14,
+       PL_SB_Upper = 15
+} PL_SB_enum;
+
+static const PL_SB_enum Sentence_Break_invmap[] = { /* for EBCDIC 037 */
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_CR,
+       PL_SB_Other,
+       PL_SB_Sep,
+       PL_SB_Other,
+       PL_SB_LF,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_ATerm,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Close,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Upper,
+       PL_SB_Format,
+       PL_SB_Lower,
+       PL_SB_Close,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Close,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Numeric,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Sp,
+       PL_SB_OLetter,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_Format,
+       PL_SB_Extend,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_ATerm,
+       PL_SB_Other,
+       PL_SB_Sep,
+       PL_SB_Format,
+       PL_SB_Sp,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Extend,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_ATerm,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_SContinue,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_ATerm,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_STerm,
+       PL_SB_Close,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Format,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other
+};
+
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_REGCOMP_C)
+
+static const UV UpperLatin1_invlist[] = { /* for EBCDIC 037 */
+       57,     /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       175,
-       193,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       224,
-       226,
-       234,
-       235,
-       240,
-       251,
-       255,
-       256,
-       443,
-       444,
-       448,
-       452,
-       660,
-       661,
-       697,
-       704,
-       706,
-       736,
-       741,
-       837,
-       838,
-       880,
-       884,
-       886,
-       888,
-       890,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1377,
-       1416,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       7424,
-       7616,
-       7680,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8501,
-       8505,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8576,
-       8579,
-       8581,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       42560,
-       42606,
-       42624,
-       42654,
-       42786,
-       42888,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       43000,
-       43003,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       64256,
-       64263,
-       64275,
-       64280,
-       65313,
-       65339,
-       65345,
-       65371,
-       66560,
-       66640,
-       71840,
-       71904,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370
+       0x0,
+       0x4,
+       0x5,
+       0x6,
+       0x7,
+       0x8,
+       0xB,
+       0x14,
+       0x16,
+       0x17,
+       0x18,
+       0x1A,
+       0x1C,
+       0x20,
+       0x25,
+       0x28,
+       0x2D,
+       0x30,
+       0x32,
+       0x33,
+       0x37,
+       0x38,
+       0x3C,
+       0x3E,
+       0x3F,
+       0x41,
+       0x4B,
+       0x51,
+       0x5A,
+       0x5F,
+       0x60,
+       0x62,
+       0x6B,
+       0x70,
+       0x79,
+       0x80,
+       0x81,
+       0x8A,
+       0x91,
+       0x9A,
+       0xA1,
+       0xAA,
+       0xB0,
+       0xB1,
+       0xBA,
+       0xBC,
+       0xC0,
+       0xCA,
+       0xD0,
+       0xDA,
+       0xE0,
+       0xE1,
+       0xE2,
+       0xEA,
+       0xF0,
+       0xFA,
+       0x100
 };
 
+#endif /* defined(PERL_IN_REGCOMP_C) */
+
+#if defined(PERL_IN_PERL_C)
+
 static const UV VertSpace_invlist[] = { /* for EBCDIC 037 */
        9,      /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       11,
-       14,
-       21,
-       22,
-       37,
-       38,
-       8232,
-       8234
+       0x0,
+       0xB,
+       0xE,
+       0x15,
+       0x16,
+       0x25,
+       0x26,
+       0x2028,
+       0x202A
 };
 
+static const UV Word_Break_invlist[] = { /* for EBCDIC 037 */
+       1501,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       0,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0xB,
+       0xD,
+       0xE,
+       0x15,
+       0x16,
+       0x25,
+       0x26,
+       0x42,
+       0x4A,
+       0x4B,
+       0x4C,
+       0x51,
+       0x5A,
+       0x5E,
+       0x5F,
+       0x62,
+       0x6A,
+       0x6B,
+       0x6C,
+       0x6D,
+       0x6E,
+       0x70,
+       0x79,
+       0x7A,
+       0x7B,
+       0x7D,
+       0x7E,
+       0x7F,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xB3,
+       0xB4,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFA,
+       0xFB,
+       0xFF,
+       0x100,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2D7,
+       0x2D8,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x300,
+       0x370,
+       0x375,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x483,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x589,
+       0x58A,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x5F4,
+       0x5F5,
+       0x600,
+       0x606,
+       0x60C,
+       0x60E,
+       0x610,
+       0x61B,
+       0x61C,
+       0x61D,
+       0x620,
+       0x64B,
+       0x660,
+       0x66A,
+       0x66B,
+       0x66C,
+       0x66D,
+       0x66E,
+       0x670,
+       0x671,
+       0x6D4,
+       0x6D5,
+       0x6D6,
+       0x6DD,
+       0x6DE,
+       0x6DF,
+       0x6E5,
+       0x6E7,
+       0x6E9,
+       0x6EA,
+       0x6EE,
+       0x6F0,
+       0x6FA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x70F,
+       0x710,
+       0x711,
+       0x712,
+       0x730,
+       0x74B,
+       0x74D,
+       0x7A6,
+       0x7B1,
+       0x7B2,
+       0x7C0,
+       0x7CA,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7F8,
+       0x7F9,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x816,
+       0x81A,
+       0x81B,
+       0x824,
+       0x825,
+       0x828,
+       0x829,
+       0x82E,
+       0x840,
+       0x859,
+       0x85C,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x904,
+       0x93A,
+       0x93D,
+       0x93E,
+       0x950,
+       0x951,
+       0x958,
+       0x962,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x981,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9BD,
+       0x9BE,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CE,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E2,
+       0x9E4,
+       0x9E6,
+       0x9F0,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA70,
+       0xA72,
+       0xA75,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xABD,
+       0xABE,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE2,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB3D,
+       0xB3E,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB62,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB83,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC3E,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC62,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCBD,
+       0xCBE,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE2,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD3E,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4E,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD62,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE31,
+       0xE32,
+       0xE34,
+       0xE3B,
+       0xE47,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xEB1,
+       0xEB2,
+       0xEB4,
+       0xEBA,
+       0xEBB,
+       0xEBD,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xF00,
+       0xF01,
+       0xF18,
+       0xF1A,
+       0xF20,
+       0xF2A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF85,
+       0xF86,
+       0xF88,
+       0xF8D,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x102B,
+       0x103F,
+       0x1040,
+       0x104A,
+       0x1056,
+       0x105A,
+       0x105E,
+       0x1061,
+       0x1062,
+       0x1065,
+       0x1067,
+       0x106E,
+       0x1071,
+       0x1075,
+       0x1082,
+       0x108E,
+       0x108F,
+       0x1090,
+       0x109A,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1712,
+       0x1715,
+       0x1720,
+       0x1732,
+       0x1735,
+       0x1740,
+       0x1752,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x17B4,
+       0x17D4,
+       0x17DD,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x180B,
+       0x180E,
+       0x180F,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18A9,
+       0x18AA,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1946,
+       0x1950,
+       0x19B0,
+       0x19C1,
+       0x19C8,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A17,
+       0x1A1C,
+       0x1A55,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A80,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B05,
+       0x1B34,
+       0x1B45,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1B83,
+       0x1BA1,
+       0x1BAE,
+       0x1BB0,
+       0x1BBA,
+       0x1BE6,
+       0x1BF4,
+       0x1C00,
+       0x1C24,
+       0x1C38,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C50,
+       0x1C5A,
+       0x1C7E,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF2,
+       0x1CF5,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DC0,
+       0x1DF6,
+       0x1DFC,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x200C,
+       0x200E,
+       0x2010,
+       0x2018,
+       0x201A,
+       0x2024,
+       0x2025,
+       0x2027,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x203F,
+       0x2041,
+       0x2044,
+       0x2045,
+       0x2054,
+       0x2055,
+       0x2060,
+       0x2065,
+       0x2066,
+       0x2070,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x20D0,
+       0x20F1,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D7F,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x3005,
+       0x3006,
+       0x302A,
+       0x3030,
+       0x3031,
+       0x3036,
+       0x303B,
+       0x303D,
+       0x3099,
+       0x309B,
+       0x309D,
+       0x30A0,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x32D0,
+       0x32FF,
+       0x3300,
+       0x3358,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA620,
+       0xA62A,
+       0xA62C,
+       0xA640,
+       0xA66F,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6A0,
+       0xA6F0,
+       0xA6F2,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA823,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA882,
+       0xA8B4,
+       0xA8C5,
+       0xA8D0,
+       0xA8DA,
+       0xA8E0,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA90A,
+       0xA926,
+       0xA92E,
+       0xA930,
+       0xA947,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA984,
+       0xA9B3,
+       0xA9C1,
+       0xA9CF,
+       0xA9D0,
+       0xA9DA,
+       0xA9E5,
+       0xA9E6,
+       0xA9F0,
+       0xA9FA,
+       0xAA00,
+       0xAA29,
+       0xAA37,
+       0xAA40,
+       0xAA43,
+       0xAA44,
+       0xAA4C,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA7B,
+       0xAA7E,
+       0xAAB0,
+       0xAAB1,
+       0xAAB2,
+       0xAAB5,
+       0xAAB7,
+       0xAAB9,
+       0xAABE,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAE0,
+       0xAAEB,
+       0xAAF0,
+       0xAAF2,
+       0xAAF5,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABE3,
+       0xABEB,
+       0xABEC,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB1E,
+       0xFB1F,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFB50,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE00,
+       0xFE10,
+       0xFE11,
+       0xFE13,
+       0xFE14,
+       0xFE15,
+       0xFE20,
+       0xFE2E,
+       0xFE33,
+       0xFE35,
+       0xFE4D,
+       0xFE50,
+       0xFE51,
+       0xFE52,
+       0xFE53,
+       0xFE54,
+       0xFE55,
+       0xFE56,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFEFF,
+       0xFF00,
+       0xFF07,
+       0xFF08,
+       0xFF0C,
+       0xFF0D,
+       0xFF0E,
+       0xFF0F,
+       0xFF1A,
+       0xFF1B,
+       0xFF1C,
+       0xFF21,
+       0xFF3B,
+       0xFF3F,
+       0xFF40,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFF9E,
+       0xFFA0,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0xFFF9,
+       0xFFFC,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x101FD,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102E1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x10376,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A01,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A10,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10AE7,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11003,
+       0x11038,
+       0x11047,
+       0x11066,
+       0x11070,
+       0x1107F,
+       0x11083,
+       0x110B0,
+       0x110BB,
+       0x110BD,
+       0x110BE,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11103,
+       0x11127,
+       0x11135,
+       0x11136,
+       0x11140,
+       0x11150,
+       0x11173,
+       0x11174,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x11183,
+       0x111B3,
+       0x111C1,
+       0x111C5,
+       0x111D0,
+       0x111DA,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1122C,
+       0x11238,
+       0x112B0,
+       0x112DF,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x1133D,
+       0x1133E,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11362,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114B0,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115AF,
+       0x115B6,
+       0x115B8,
+       0x115C1,
+       0x11600,
+       0x11630,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116AB,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118E0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF5,
+       0x16B00,
+       0x16B30,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F51,
+       0x16F7F,
+       0x16F8F,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B001,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9D,
+       0x1BC9F,
+       0x1BCA0,
+       0x1BCA4,
+       0x1D165,
+       0x1D16A,
+       0x1D16D,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8D0,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x1F1E6,
+       0x1F200,
+       0xE0001,
+       0xE0002,
+       0xE0020,
+       0xE0080,
+       0xE0100,
+       0xE01F0
+};
+
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define PL_WB_ENUM_COUNT 19
+
+typedef enum {
+       PL_WB_Other = 0,
+       PL_WB_ALetter = 1,
+       PL_WB_CR = 2,
+       PL_WB_Double_Quote = 3,
+       PL_WB_EDGE = 4,
+       PL_WB_Extend = 5,
+       PL_WB_ExtendNumLet = 6,
+       PL_WB_Format = 7,
+       PL_WB_Hebrew_Letter = 8,
+       PL_WB_Katakana = 9,
+       PL_WB_LF = 10,
+       PL_WB_MidLetter = 11,
+       PL_WB_MidNum = 12,
+       PL_WB_MidNumLet = 13,
+       PL_WB_Newline = 14,
+       PL_WB_Numeric = 15,
+       PL_WB_Regional_Indicator = 16,
+       PL_WB_Single_Quote = 17,
+       PL_WB_UNKNOWN = 18
+} PL_WB_enum;
+
+static const PL_WB_enum Word_Break_invmap[] = { /* for EBCDIC 037 */
+       PL_WB_Other,
+       PL_WB_Newline,
+       PL_WB_CR,
+       PL_WB_Other,
+       PL_WB_Newline,
+       PL_WB_Other,
+       PL_WB_LF,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_Other,
+       PL_WB_Single_Quote,
+       PL_WB_Other,
+       PL_WB_Double_Quote,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Format,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_MidNum,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_MidLetter,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_ALetter,
+       PL_WB_MidLetter,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Numeric,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_Newline,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Extend,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_MidLetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Format,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Regional_Indicator,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other
+};
+
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_PERL_C)
+
 static const UV XPerlSpace_invlist[] = { /* for EBCDIC 037 */
        23,     /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       5,
-       6,
-       11,
-       14,
-       21,
-       22,
-       37,
-       38,
-       64,
-       66,
-       5760,
-       5761,
-       8192,
-       8203,
-       8232,
-       8234,
-       8239,
-       8240,
-       8287,
-       8288,
-       12288,
-       12289
+       0x0,
+       0x5,
+       0x6,
+       0xB,
+       0xE,
+       0x15,
+       0x16,
+       0x25,
+       0x26,
+       0x40,
+       0x42,
+       0x1680,
+       0x1681,
+       0x2000,
+       0x200B,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x2030,
+       0x205F,
+       0x2060,
+       0x3000,
+       0x3001
 };
 
 static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 037 */
@@ -25321,1287 +63547,1287 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 037 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       175,
-       193,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       224,
-       226,
-       234,
-       235,
-       250,
-       251,
-       255,
-       256,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       837,
-       838,
-       880,
-       885,
-       886,
-       888,
-       890,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1456,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1480,
-       1488,
-       1515,
-       1520,
-       1523,
-       1552,
-       1563,
-       1568,
-       1624,
-       1625,
-       1642,
-       1646,
-       1748,
-       1749,
-       1757,
-       1761,
-       1769,
-       1773,
-       1789,
-       1791,
-       1792,
-       1808,
-       1856,
-       1869,
-       1970,
-       1984,
-       2027,
-       2036,
-       2038,
-       2042,
-       2043,
-       2048,
-       2072,
-       2074,
-       2093,
-       2112,
-       2137,
-       2208,
-       2227,
-       2276,
-       2282,
-       2288,
-       2364,
-       2365,
-       2381,
-       2382,
-       2385,
-       2389,
-       2404,
-       2406,
-       2416,
-       2417,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2493,
-       2501,
-       2503,
-       2505,
-       2507,
-       2509,
-       2510,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2546,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2637,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2749,
-       2758,
-       2759,
-       2762,
-       2763,
-       2765,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2800,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2877,
-       2885,
-       2887,
-       2889,
-       2891,
-       2893,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2928,
-       2929,
-       2930,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3021,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3056,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3149,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3261,
-       3269,
-       3270,
-       3273,
-       3274,
-       3277,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3405,
-       3406,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3440,
-       3450,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3572,
-       3585,
-       3643,
-       3648,
-       3655,
-       3661,
-       3662,
-       3664,
-       3674,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3789,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3841,
-       3872,
-       3882,
-       3904,
-       3912,
-       3913,
-       3949,
-       3953,
-       3970,
-       3976,
-       3992,
-       3993,
-       4029,
-       4096,
-       4151,
-       4152,
-       4153,
-       4155,
-       4170,
-       4176,
-       4195,
-       4197,
-       4201,
-       4206,
-       4231,
-       4238,
-       4239,
-       4240,
-       4250,
-       4252,
-       4254,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4959,
-       4960,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5908,
-       5920,
-       5940,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6068,
-       6070,
-       6089,
-       6103,
-       6104,
-       6108,
-       6109,
-       6112,
-       6122,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6457,
-       6470,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6618,
-       6656,
-       6684,
-       6688,
-       6751,
-       6753,
-       6773,
-       6784,
-       6794,
-       6800,
-       6810,
-       6823,
-       6824,
-       6912,
-       6964,
-       6965,
-       6980,
-       6981,
-       6988,
-       6992,
-       7002,
-       7040,
-       7082,
-       7084,
-       7142,
-       7143,
-       7154,
-       7168,
-       7222,
-       7232,
-       7242,
-       7245,
-       7294,
-       7401,
-       7405,
-       7406,
-       7412,
-       7413,
-       7415,
-       7424,
-       7616,
-       7655,
-       7669,
-       7680,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11648,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11776,
-       11823,
-       11824,
-       12293,
-       12296,
-       12321,
-       12330,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42540,
-       42560,
-       42607,
-       42612,
-       42620,
-       42623,
-       42654,
-       42655,
-       42736,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43010,
-       43011,
-       43014,
-       43015,
-       43019,
-       43020,
-       43048,
-       43072,
-       43124,
-       43136,
-       43204,
-       43216,
-       43226,
-       43250,
-       43256,
-       43259,
-       43260,
-       43264,
-       43307,
-       43312,
-       43347,
-       43360,
-       43389,
-       43392,
-       43443,
-       43444,
-       43456,
-       43471,
-       43482,
-       43488,
-       43493,
-       43494,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43616,
-       43639,
-       43642,
-       43643,
-       43646,
-       43711,
-       43712,
-       43713,
-       43714,
-       43715,
-       43739,
-       43742,
-       43744,
-       43760,
-       43762,
-       43766,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44011,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65020,
-       65136,
-       65141,
-       65142,
-       65277,
-       65296,
-       65306,
-       65313,
-       65339,
-       65345,
-       65371,
-       65382,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66176,
-       66205,
-       66208,
-       66257,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68325,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69632,
-       69702,
-       69734,
-       69744,
-       69762,
-       69817,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69939,
-       69942,
-       69952,
-       69968,
-       70003,
-       70006,
-       70007,
-       70016,
-       70080,
-       70081,
-       70085,
-       70096,
-       70107,
-       70144,
-       70162,
-       70163,
-       70197,
-       70199,
-       70200,
-       70320,
-       70377,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70461,
-       70469,
-       70471,
-       70473,
-       70475,
-       70477,
-       70487,
-       70488,
-       70493,
-       70500,
-       70784,
-       70850,
-       70852,
-       70854,
-       70855,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71103,
-       71168,
-       71231,
-       71232,
-       71233,
-       71236,
-       71237,
-       71248,
-       71258,
-       71296,
-       71350,
-       71360,
-       71370,
-       71840,
-       71914,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92880,
-       92910,
-       92928,
-       92983,
-       92992,
-       92996,
-       93008,
-       93018,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94099,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113822,
-       113823,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xFA,
+       0xFB,
+       0xFF,
+       0x100,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x345,
+       0x346,
+       0x370,
+       0x375,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x5B0,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x610,
+       0x61B,
+       0x620,
+       0x658,
+       0x659,
+       0x66A,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x6DD,
+       0x6E1,
+       0x6E9,
+       0x6ED,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x740,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x818,
+       0x81A,
+       0x82D,
+       0x840,
+       0x859,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x8EA,
+       0x8F0,
+       0x93C,
+       0x93D,
+       0x94D,
+       0x94E,
+       0x951,
+       0x955,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BD,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CD,
+       0x9CE,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4D,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABD,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACD,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3D,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4D,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCD,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4D,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBD,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCD,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4D,
+       0xD4E,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE3B,
+       0xE40,
+       0xE47,
+       0xE4D,
+       0xE4E,
+       0xE50,
+       0xE5A,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xECD,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF20,
+       0xF2A,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF82,
+       0xF88,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0x1000,
+       0x1037,
+       0x1038,
+       0x1039,
+       0x103B,
+       0x104A,
+       0x1050,
+       0x1063,
+       0x1065,
+       0x1069,
+       0x106E,
+       0x1087,
+       0x108E,
+       0x108F,
+       0x1090,
+       0x109A,
+       0x109C,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135F,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1714,
+       0x1720,
+       0x1734,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17B4,
+       0x17B6,
+       0x17C9,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DD,
+       0x17E0,
+       0x17EA,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x1939,
+       0x1946,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A1C,
+       0x1A20,
+       0x1A5F,
+       0x1A61,
+       0x1A75,
+       0x1A80,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA7,
+       0x1AA8,
+       0x1B00,
+       0x1B34,
+       0x1B35,
+       0x1B44,
+       0x1B45,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B80,
+       0x1BAA,
+       0x1BAC,
+       0x1BE6,
+       0x1BE7,
+       0x1BF2,
+       0x1C00,
+       0x1C36,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C7E,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF4,
+       0x1CF5,
+       0x1CF7,
+       0x1D00,
+       0x1DC0,
+       0x1DE7,
+       0x1DF5,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x302A,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA62C,
+       0xA640,
+       0xA66F,
+       0xA674,
+       0xA67C,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6F0,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA8C4,
+       0xA8D0,
+       0xA8DA,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA92B,
+       0xA930,
+       0xA953,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA9B3,
+       0xA9B4,
+       0xA9C0,
+       0xA9CF,
+       0xA9DA,
+       0xA9E0,
+       0xA9E5,
+       0xA9E6,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAA7B,
+       0xAA7E,
+       0xAABF,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xAAF6,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEB,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFF10,
+       0xFF1A,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11046,
+       0x11066,
+       0x11070,
+       0x11082,
+       0x110B9,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11133,
+       0x11136,
+       0x11140,
+       0x11150,
+       0x11173,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x111C0,
+       0x111C1,
+       0x111C5,
+       0x111D0,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x11235,
+       0x11237,
+       0x11238,
+       0x112B0,
+       0x112E9,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133D,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134D,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11480,
+       0x114C2,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115BF,
+       0x11600,
+       0x1163F,
+       0x11640,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B6,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16AD0,
+       0x16AEE,
+       0x16B00,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9E,
+       0x1BC9F,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E
 };
 
 static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 037 */
@@ -26609,1229 +64835,1229 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 037 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       175,
-       193,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       224,
-       226,
-       234,
-       235,
-       240,
-       251,
-       255,
-       256,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       837,
-       838,
-       880,
-       885,
-       886,
-       888,
-       890,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1456,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1480,
-       1488,
-       1515,
-       1520,
-       1523,
-       1552,
-       1563,
-       1568,
-       1624,
-       1625,
-       1632,
-       1646,
-       1748,
-       1749,
-       1757,
-       1761,
-       1769,
-       1773,
-       1776,
-       1786,
-       1789,
-       1791,
-       1792,
-       1808,
-       1856,
-       1869,
-       1970,
-       1994,
-       2027,
-       2036,
-       2038,
-       2042,
-       2043,
-       2048,
-       2072,
-       2074,
-       2093,
-       2112,
-       2137,
-       2208,
-       2227,
-       2276,
-       2282,
-       2288,
-       2364,
-       2365,
-       2381,
-       2382,
-       2385,
-       2389,
-       2404,
-       2417,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2493,
-       2501,
-       2503,
-       2505,
-       2507,
-       2509,
-       2510,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2544,
-       2546,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2637,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2672,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2749,
-       2758,
-       2759,
-       2762,
-       2763,
-       2765,
-       2768,
-       2769,
-       2784,
-       2788,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2877,
-       2885,
-       2887,
-       2889,
-       2891,
-       2893,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2929,
-       2930,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3021,
-       3024,
-       3025,
-       3031,
-       3032,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3149,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3261,
-       3269,
-       3270,
-       3273,
-       3274,
-       3277,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3405,
-       3406,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3450,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3570,
-       3572,
-       3585,
-       3643,
-       3648,
-       3655,
-       3661,
-       3662,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3789,
-       3790,
-       3804,
-       3808,
-       3840,
-       3841,
-       3904,
-       3912,
-       3913,
-       3949,
-       3953,
-       3970,
-       3976,
-       3992,
-       3993,
-       4029,
-       4096,
-       4151,
-       4152,
-       4153,
-       4155,
-       4160,
-       4176,
-       4195,
-       4197,
-       4201,
-       4206,
-       4231,
-       4238,
-       4239,
-       4252,
-       4254,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4959,
-       4960,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5908,
-       5920,
-       5940,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6068,
-       6070,
-       6089,
-       6103,
-       6104,
-       6108,
-       6109,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6457,
-       6480,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6656,
-       6684,
-       6688,
-       6751,
-       6753,
-       6773,
-       6823,
-       6824,
-       6912,
-       6964,
-       6965,
-       6980,
-       6981,
-       6988,
-       7040,
-       7082,
-       7084,
-       7088,
-       7098,
-       7142,
-       7143,
-       7154,
-       7168,
-       7222,
-       7245,
-       7248,
-       7258,
-       7294,
-       7401,
-       7405,
-       7406,
-       7412,
-       7413,
-       7415,
-       7424,
-       7616,
-       7655,
-       7669,
-       7680,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11648,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11776,
-       11823,
-       11824,
-       12293,
-       12296,
-       12321,
-       12330,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42528,
-       42538,
-       42540,
-       42560,
-       42607,
-       42612,
-       42620,
-       42623,
-       42654,
-       42655,
-       42736,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43010,
-       43011,
-       43014,
-       43015,
-       43019,
-       43020,
-       43048,
-       43072,
-       43124,
-       43136,
-       43204,
-       43250,
-       43256,
-       43259,
-       43260,
-       43274,
-       43307,
-       43312,
-       43347,
-       43360,
-       43389,
-       43392,
-       43443,
-       43444,
-       43456,
-       43471,
-       43472,
-       43488,
-       43493,
-       43494,
-       43504,
-       43514,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43616,
-       43639,
-       43642,
-       43643,
-       43646,
-       43711,
-       43712,
-       43713,
-       43714,
-       43715,
-       43739,
-       43742,
-       43744,
-       43760,
-       43762,
-       43766,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44011,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65020,
-       65136,
-       65141,
-       65142,
-       65277,
-       65313,
-       65339,
-       65345,
-       65371,
-       65382,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66176,
-       66205,
-       66208,
-       66257,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68325,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69632,
-       69702,
-       69762,
-       69817,
-       69840,
-       69865,
-       69888,
-       69939,
-       69968,
-       70003,
-       70006,
-       70007,
-       70016,
-       70080,
-       70081,
-       70085,
-       70106,
-       70107,
-       70144,
-       70162,
-       70163,
-       70197,
-       70199,
-       70200,
-       70320,
-       70377,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70461,
-       70469,
-       70471,
-       70473,
-       70475,
-       70477,
-       70487,
-       70488,
-       70493,
-       70500,
-       70784,
-       70850,
-       70852,
-       70854,
-       70855,
-       70856,
-       71040,
-       71094,
-       71096,
-       71103,
-       71168,
-       71231,
-       71232,
-       71233,
-       71236,
-       71237,
-       71296,
-       71350,
-       71840,
-       71904,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92880,
-       92910,
-       92928,
-       92983,
-       92992,
-       92996,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94099,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113822,
-       113823,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       124928,
-       125125,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFB,
+       0xFF,
+       0x100,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x345,
+       0x346,
+       0x370,
+       0x375,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x5B0,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x610,
+       0x61B,
+       0x620,
+       0x658,
+       0x659,
+       0x660,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x6DD,
+       0x6E1,
+       0x6E9,
+       0x6ED,
+       0x6F0,
+       0x6FA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x740,
+       0x74D,
+       0x7B2,
+       0x7CA,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x818,
+       0x81A,
+       0x82D,
+       0x840,
+       0x859,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x8EA,
+       0x8F0,
+       0x93C,
+       0x93D,
+       0x94D,
+       0x94E,
+       0x951,
+       0x955,
+       0x964,
+       0x971,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BD,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CD,
+       0x9CE,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9F0,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4D,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA70,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABD,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACD,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3D,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4D,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCD,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4D,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBD,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCD,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4D,
+       0xD4E,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE3B,
+       0xE40,
+       0xE47,
+       0xE4D,
+       0xE4E,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xECD,
+       0xECE,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF82,
+       0xF88,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0x1000,
+       0x1037,
+       0x1038,
+       0x1039,
+       0x103B,
+       0x1040,
+       0x1050,
+       0x1063,
+       0x1065,
+       0x1069,
+       0x106E,
+       0x1087,
+       0x108E,
+       0x108F,
+       0x109C,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135F,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1714,
+       0x1720,
+       0x1734,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17B4,
+       0x17B6,
+       0x17C9,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DD,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x1939,
+       0x1950,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x1A00,
+       0x1A1C,
+       0x1A20,
+       0x1A5F,
+       0x1A61,
+       0x1A75,
+       0x1AA7,
+       0x1AA8,
+       0x1B00,
+       0x1B34,
+       0x1B35,
+       0x1B44,
+       0x1B45,
+       0x1B4C,
+       0x1B80,
+       0x1BAA,
+       0x1BAC,
+       0x1BB0,
+       0x1BBA,
+       0x1BE6,
+       0x1BE7,
+       0x1BF2,
+       0x1C00,
+       0x1C36,
+       0x1C4D,
+       0x1C50,
+       0x1C5A,
+       0x1C7E,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF4,
+       0x1CF5,
+       0x1CF7,
+       0x1D00,
+       0x1DC0,
+       0x1DE7,
+       0x1DF5,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x302A,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA620,
+       0xA62A,
+       0xA62C,
+       0xA640,
+       0xA66F,
+       0xA674,
+       0xA67C,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6F0,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA8C4,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA90A,
+       0xA92B,
+       0xA930,
+       0xA953,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA9B3,
+       0xA9B4,
+       0xA9C0,
+       0xA9CF,
+       0xA9D0,
+       0xA9E0,
+       0xA9E5,
+       0xA9E6,
+       0xA9F0,
+       0xA9FA,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAA7B,
+       0xAA7E,
+       0xAABF,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xAAF6,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEB,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11046,
+       0x11082,
+       0x110B9,
+       0x110D0,
+       0x110E9,
+       0x11100,
+       0x11133,
+       0x11150,
+       0x11173,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x111C0,
+       0x111C1,
+       0x111C5,
+       0x111DA,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x11235,
+       0x11237,
+       0x11238,
+       0x112B0,
+       0x112E9,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133D,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134D,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11480,
+       0x114C2,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115BF,
+       0x11600,
+       0x1163F,
+       0x11640,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11680,
+       0x116B6,
+       0x118A0,
+       0x118E0,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16AD0,
+       0x16AEE,
+       0x16B00,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9E,
+       0x1BC9F,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1E800,
+       0x1E8C5,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E
 };
 
 static const UV XPosixBlank_invlist[] = { /* for EBCDIC 037 */
@@ -27839,21 +66065,21 @@ static const UV XPosixBlank_invlist[] = { /* for EBCDIC 037 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       5,
-       6,
-       64,
-       66,
-       5760,
-       5761,
-       8192,
-       8203,
-       8239,
-       8240,
-       8287,
-       8288,
-       12288,
-       12289
+       0x0,
+       0x5,
+       0x6,
+       0x40,
+       0x42,
+       0x1680,
+       0x1681,
+       0x2000,
+       0x200B,
+       0x202F,
+       0x2030,
+       0x205F,
+       0x2060,
+       0x3000,
+       0x3001
 };
 
 static const UV XPosixCntrl_invlist[] = { /* for EBCDIC 037 */
@@ -27861,10 +66087,10 @@ static const UV XPosixCntrl_invlist[] = { /* for EBCDIC 037 */
        148565664, /* Version and data structure type */
        0,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       64,
-       255,
-       256
+       0x0,
+       0x40,
+       0xFF,
+       0x100
 };
 
 static const UV XPosixDigit_invlist[] = { /* for EBCDIC 037 */
@@ -27872,107 +66098,107 @@ static const UV XPosixDigit_invlist[] = { /* for EBCDIC 037 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       240,
-       250,
-       1632,
-       1642,
-       1776,
-       1786,
-       1984,
-       1994,
-       2406,
-       2416,
-       2534,
-       2544,
-       2662,
-       2672,
-       2790,
-       2800,
-       2918,
-       2928,
-       3046,
-       3056,
-       3174,
-       3184,
-       3302,
-       3312,
-       3430,
-       3440,
-       3558,
-       3568,
-       3664,
-       3674,
-       3792,
-       3802,
-       3872,
-       3882,
-       4160,
-       4170,
-       4240,
-       4250,
-       6112,
-       6122,
-       6160,
-       6170,
-       6470,
-       6480,
-       6608,
-       6618,
-       6784,
-       6794,
-       6800,
-       6810,
-       6992,
-       7002,
-       7088,
-       7098,
-       7232,
-       7242,
-       7248,
-       7258,
-       42528,
-       42538,
-       43216,
-       43226,
-       43264,
-       43274,
-       43472,
-       43482,
-       43504,
-       43514,
-       43600,
-       43610,
-       44016,
-       44026,
-       65296,
-       65306,
-       66720,
-       66730,
-       69734,
-       69744,
-       69872,
-       69882,
-       69942,
-       69952,
-       70096,
-       70106,
-       70384,
-       70394,
-       70864,
-       70874,
-       71248,
-       71258,
-       71360,
-       71370,
-       71904,
-       71914,
-       92768,
-       92778,
-       93008,
-       93018,
-       120782,
-       120832
+       0x0,
+       0xF0,
+       0xFA,
+       0x660,
+       0x66A,
+       0x6F0,
+       0x6FA,
+       0x7C0,
+       0x7CA,
+       0x966,
+       0x970,
+       0x9E6,
+       0x9F0,
+       0xA66,
+       0xA70,
+       0xAE6,
+       0xAF0,
+       0xB66,
+       0xB70,
+       0xBE6,
+       0xBF0,
+       0xC66,
+       0xC70,
+       0xCE6,
+       0xCF0,
+       0xD66,
+       0xD70,
+       0xDE6,
+       0xDF0,
+       0xE50,
+       0xE5A,
+       0xED0,
+       0xEDA,
+       0xF20,
+       0xF2A,
+       0x1040,
+       0x104A,
+       0x1090,
+       0x109A,
+       0x17E0,
+       0x17EA,
+       0x1810,
+       0x181A,
+       0x1946,
+       0x1950,
+       0x19D0,
+       0x19DA,
+       0x1A80,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1B50,
+       0x1B5A,
+       0x1BB0,
+       0x1BBA,
+       0x1C40,
+       0x1C4A,
+       0x1C50,
+       0x1C5A,
+       0xA620,
+       0xA62A,
+       0xA8D0,
+       0xA8DA,
+       0xA900,
+       0xA90A,
+       0xA9D0,
+       0xA9DA,
+       0xA9F0,
+       0xA9FA,
+       0xAA50,
+       0xAA5A,
+       0xABF0,
+       0xABFA,
+       0xFF10,
+       0xFF1A,
+       0x104A0,
+       0x104AA,
+       0x11066,
+       0x11070,
+       0x110F0,
+       0x110FA,
+       0x11136,
+       0x11140,
+       0x111D0,
+       0x111DA,
+       0x112F0,
+       0x112FA,
+       0x114D0,
+       0x114DA,
+       0x11650,
+       0x1165A,
+       0x116C0,
+       0x116CA,
+       0x118E0,
+       0x118EA,
+       0x16A60,
+       0x16A6A,
+       0x16B50,
+       0x16B5A,
+       0x1D7CE,
+       0x1D800
 };
 
 static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
@@ -27980,1217 +66206,1217 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       255,
-       256,
-       888,
-       890,
-       896,
-       900,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1328,
-       1329,
-       1367,
-       1369,
-       1376,
-       1377,
-       1416,
-       1417,
-       1419,
-       1421,
-       1424,
-       1425,
-       1480,
-       1488,
-       1515,
-       1520,
-       1525,
-       1536,
-       1565,
-       1566,
-       1806,
-       1807,
-       1867,
-       1869,
-       1970,
-       1984,
-       2043,
-       2048,
-       2094,
-       2096,
-       2111,
-       2112,
-       2140,
-       2142,
-       2143,
-       2208,
-       2227,
-       2276,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2492,
-       2501,
-       2503,
-       2505,
-       2507,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2556,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2620,
-       2621,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2638,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2748,
-       2758,
-       2759,
-       2762,
-       2763,
-       2766,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2802,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2876,
-       2885,
-       2887,
-       2889,
-       2891,
-       2894,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2936,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3022,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3067,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3150,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3192,
-       3200,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3260,
-       3269,
-       3270,
-       3273,
-       3274,
-       3278,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3446,
-       3449,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3530,
-       3531,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3573,
-       3585,
-       3643,
-       3647,
-       3676,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3784,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3912,
-       3913,
-       3949,
-       3953,
-       3992,
-       3993,
-       4029,
-       4030,
-       4045,
-       4046,
-       4059,
-       4096,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4957,
-       4989,
-       4992,
-       5018,
-       5024,
-       5109,
-       5120,
-       5760,
-       5761,
-       5789,
-       5792,
-       5881,
-       5888,
-       5901,
-       5902,
-       5909,
-       5920,
-       5943,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6110,
-       6112,
-       6122,
-       6128,
-       6138,
-       6144,
-       6159,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6460,
-       6464,
-       6465,
-       6468,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6619,
-       6622,
-       6684,
-       6686,
-       6751,
-       6752,
-       6781,
-       6783,
-       6794,
-       6800,
-       6810,
-       6816,
-       6830,
-       6832,
-       6847,
-       6912,
-       6988,
-       6992,
-       7037,
-       7040,
-       7156,
-       7164,
-       7224,
-       7227,
-       7242,
-       7245,
-       7296,
-       7360,
-       7368,
-       7376,
-       7415,
-       7416,
-       7418,
-       7424,
-       7670,
-       7676,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8133,
-       8134,
-       8148,
-       8150,
-       8156,
-       8157,
-       8176,
-       8178,
-       8181,
-       8182,
-       8191,
-       8203,
-       8232,
-       8234,
-       8239,
-       8240,
-       8287,
-       8288,
-       8293,
-       8294,
-       8306,
-       8308,
-       8335,
-       8336,
-       8349,
-       8352,
-       8382,
-       8400,
-       8433,
-       8448,
-       8586,
-       8592,
-       9211,
-       9216,
-       9255,
-       9280,
-       9291,
-       9312,
-       11124,
-       11126,
-       11158,
-       11160,
-       11194,
-       11197,
-       11209,
-       11210,
-       11218,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11508,
-       11513,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11633,
-       11647,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11843,
-       11904,
-       11930,
-       11931,
-       12020,
-       12032,
-       12246,
-       12272,
-       12284,
-       12289,
-       12352,
-       12353,
-       12439,
-       12441,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12688,
-       12731,
-       12736,
-       12772,
-       12784,
-       12831,
-       12832,
-       13055,
-       13056,
-       19894,
-       19904,
-       40909,
-       40960,
-       42125,
-       42128,
-       42183,
-       42192,
-       42540,
-       42560,
-       42654,
-       42655,
-       42744,
-       42752,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43052,
-       43056,
-       43066,
-       43072,
-       43128,
-       43136,
-       43205,
-       43214,
-       43226,
-       43232,
-       43260,
-       43264,
-       43348,
-       43359,
-       43389,
-       43392,
-       43470,
-       43471,
-       43482,
-       43486,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43612,
-       43715,
-       43739,
-       43767,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43872,
-       43876,
-       43878,
-       43968,
-       44014,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       57344,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64450,
-       64467,
-       64832,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65022,
-       65024,
-       65050,
-       65056,
-       65070,
-       65072,
-       65107,
-       65108,
-       65127,
-       65128,
-       65132,
-       65136,
-       65141,
-       65142,
-       65277,
-       65279,
-       65280,
-       65281,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65504,
-       65511,
-       65512,
-       65519,
-       65529,
-       65534,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65792,
-       65795,
-       65799,
-       65844,
-       65847,
-       65933,
-       65936,
-       65948,
-       65952,
-       65953,
-       66000,
-       66046,
-       66176,
-       66205,
-       66208,
-       66257,
-       66272,
-       66300,
-       66304,
-       66340,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66463,
-       66500,
-       66504,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       66927,
-       66928,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67671,
-       67743,
-       67751,
-       67760,
-       67840,
-       67868,
-       67871,
-       67898,
-       67903,
-       67904,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68152,
-       68155,
-       68159,
-       68168,
-       68176,
-       68185,
-       68192,
-       68256,
-       68288,
-       68327,
-       68331,
-       68343,
-       68352,
-       68406,
-       68409,
-       68438,
-       68440,
-       68467,
-       68472,
-       68498,
-       68505,
-       68509,
-       68521,
-       68528,
-       68608,
-       68681,
-       69216,
-       69247,
-       69632,
-       69710,
-       69714,
-       69744,
-       69759,
-       69826,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69941,
-       69942,
-       69956,
-       69968,
-       70007,
-       70016,
-       70089,
-       70093,
-       70094,
-       70096,
-       70107,
-       70113,
-       70133,
-       70144,
-       70162,
-       70163,
-       70206,
-       70320,
-       70379,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70460,
-       70469,
-       70471,
-       70473,
-       70475,
-       70478,
-       70487,
-       70488,
-       70493,
-       70500,
-       70502,
-       70509,
-       70512,
-       70517,
-       70784,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71114,
-       71168,
-       71237,
-       71248,
-       71258,
-       71296,
-       71352,
-       71360,
-       71370,
-       71840,
-       71923,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       74864,
-       74869,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92782,
-       92784,
-       92880,
-       92910,
-       92912,
-       92918,
-       92928,
-       92998,
-       93008,
-       93018,
-       93019,
-       93026,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94095,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113820,
-       113828,
-       118784,
-       119030,
-       119040,
-       119079,
-       119081,
-       119262,
-       119296,
-       119366,
-       119552,
-       119639,
-       119648,
-       119666,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       125127,
-       125143,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       126704,
-       126706,
-       126976,
-       127020,
-       127024,
-       127124,
-       127136,
-       127151,
-       127153,
-       127168,
-       127169,
-       127184,
-       127185,
-       127222,
-       127232,
-       127245,
-       127248,
-       127279,
-       127280,
-       127340,
-       127344,
-       127387,
-       127462,
-       127491,
-       127504,
-       127547,
-       127552,
-       127561,
-       127568,
-       127570,
-       127744,
-       127789,
-       127792,
-       127870,
-       127872,
-       127951,
-       127956,
-       127992,
-       128000,
-       128255,
-       128256,
-       128331,
-       128336,
-       128378,
-       128379,
-       128420,
-       128421,
-       128579,
-       128581,
-       128720,
-       128736,
-       128749,
-       128752,
-       128756,
-       128768,
-       128884,
-       128896,
-       128981,
-       129024,
-       129036,
-       129040,
-       129096,
-       129104,
-       129114,
-       129120,
-       129160,
-       129168,
-       129198,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102,
-       917505,
-       917506,
-       917536,
-       917632,
-       917760,
-       918000,
-       983040,
-       1048574,
-       1048576,
-       1114110
+       0x0,
+       0x42,
+       0xFF,
+       0x100,
+       0x378,
+       0x37A,
+       0x380,
+       0x384,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x560,
+       0x561,
+       0x588,
+       0x589,
+       0x58B,
+       0x58D,
+       0x590,
+       0x591,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F5,
+       0x600,
+       0x61D,
+       0x61E,
+       0x70E,
+       0x70F,
+       0x74B,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7FB,
+       0x800,
+       0x82E,
+       0x830,
+       0x83F,
+       0x840,
+       0x85C,
+       0x85E,
+       0x85F,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9FC,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF2,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB78,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBFB,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC78,
+       0xC80,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD76,
+       0xD79,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF5,
+       0xE01,
+       0xE3B,
+       0xE3F,
+       0xE5C,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFBE,
+       0xFCD,
+       0xFCE,
+       0xFDB,
+       0x1000,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x137D,
+       0x1380,
+       0x139A,
+       0x13A0,
+       0x13F5,
+       0x1400,
+       0x1680,
+       0x1681,
+       0x169D,
+       0x16A0,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1715,
+       0x1720,
+       0x1737,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x17F0,
+       0x17FA,
+       0x1800,
+       0x180F,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1940,
+       0x1941,
+       0x1944,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DB,
+       0x19DE,
+       0x1A1C,
+       0x1A1E,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA0,
+       0x1AAE,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B4C,
+       0x1B50,
+       0x1B7D,
+       0x1B80,
+       0x1BF4,
+       0x1BFC,
+       0x1C38,
+       0x1C3B,
+       0x1C4A,
+       0x1C4D,
+       0x1C80,
+       0x1CC0,
+       0x1CC8,
+       0x1CD0,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DF6,
+       0x1DFC,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FC5,
+       0x1FC6,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FDD,
+       0x1FF0,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFF,
+       0x200B,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x2030,
+       0x205F,
+       0x2060,
+       0x2065,
+       0x2066,
+       0x2072,
+       0x2074,
+       0x208F,
+       0x2090,
+       0x209D,
+       0x20A0,
+       0x20BE,
+       0x20D0,
+       0x20F1,
+       0x2100,
+       0x218A,
+       0x2190,
+       0x23FB,
+       0x2400,
+       0x2427,
+       0x2440,
+       0x244B,
+       0x2460,
+       0x2B74,
+       0x2B76,
+       0x2B96,
+       0x2B98,
+       0x2BBA,
+       0x2BBD,
+       0x2BC9,
+       0x2BCA,
+       0x2BD2,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CF4,
+       0x2CF9,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D71,
+       0x2D7F,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E43,
+       0x2E80,
+       0x2E9A,
+       0x2E9B,
+       0x2EF4,
+       0x2F00,
+       0x2FD6,
+       0x2FF0,
+       0x2FFC,
+       0x3001,
+       0x3040,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x3190,
+       0x31BB,
+       0x31C0,
+       0x31E4,
+       0x31F0,
+       0x321F,
+       0x3220,
+       0x32FF,
+       0x3300,
+       0x4DB6,
+       0x4DC0,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA490,
+       0xA4C7,
+       0xA4D0,
+       0xA62C,
+       0xA640,
+       0xA69E,
+       0xA69F,
+       0xA6F8,
+       0xA700,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA82C,
+       0xA830,
+       0xA83A,
+       0xA840,
+       0xA878,
+       0xA880,
+       0xA8C5,
+       0xA8CE,
+       0xA8DA,
+       0xA8E0,
+       0xA8FC,
+       0xA900,
+       0xA954,
+       0xA95F,
+       0xA97D,
+       0xA980,
+       0xA9CE,
+       0xA9CF,
+       0xA9DA,
+       0xA9DE,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA5C,
+       0xAAC3,
+       0xAADB,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xE000,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBC2,
+       0xFBD3,
+       0xFD40,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFE,
+       0xFE00,
+       0xFE1A,
+       0xFE20,
+       0xFE2E,
+       0xFE30,
+       0xFE53,
+       0xFE54,
+       0xFE67,
+       0xFE68,
+       0xFE6C,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFEFF,
+       0xFF00,
+       0xFF01,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0xFFE0,
+       0xFFE7,
+       0xFFE8,
+       0xFFEF,
+       0xFFF9,
+       0xFFFE,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10100,
+       0x10103,
+       0x10107,
+       0x10134,
+       0x10137,
+       0x1018D,
+       0x10190,
+       0x1019C,
+       0x101A0,
+       0x101A1,
+       0x101D0,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102FC,
+       0x10300,
+       0x10324,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x1039F,
+       0x103C4,
+       0x103C8,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x1056F,
+       0x10570,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10857,
+       0x1089F,
+       0x108A7,
+       0x108B0,
+       0x10900,
+       0x1091C,
+       0x1091F,
+       0x1093A,
+       0x1093F,
+       0x10940,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A48,
+       0x10A50,
+       0x10A59,
+       0x10A60,
+       0x10AA0,
+       0x10AC0,
+       0x10AE7,
+       0x10AEB,
+       0x10AF7,
+       0x10B00,
+       0x10B36,
+       0x10B39,
+       0x10B56,
+       0x10B58,
+       0x10B73,
+       0x10B78,
+       0x10B92,
+       0x10B99,
+       0x10B9D,
+       0x10BA9,
+       0x10BB0,
+       0x10C00,
+       0x10C49,
+       0x10E60,
+       0x10E7F,
+       0x11000,
+       0x1104E,
+       0x11052,
+       0x11070,
+       0x1107F,
+       0x110C2,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11135,
+       0x11136,
+       0x11144,
+       0x11150,
+       0x11177,
+       0x11180,
+       0x111C9,
+       0x111CD,
+       0x111CE,
+       0x111D0,
+       0x111DB,
+       0x111E1,
+       0x111F5,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1123E,
+       0x112B0,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115CA,
+       0x11600,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118F3,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x12470,
+       0x12475,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16A6E,
+       0x16A70,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF6,
+       0x16B00,
+       0x16B46,
+       0x16B50,
+       0x16B5A,
+       0x16B5B,
+       0x16B62,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F8F,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9C,
+       0x1BCA4,
+       0x1D000,
+       0x1D0F6,
+       0x1D100,
+       0x1D127,
+       0x1D129,
+       0x1D1DE,
+       0x1D200,
+       0x1D246,
+       0x1D300,
+       0x1D357,
+       0x1D360,
+       0x1D372,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8C7,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1EEF0,
+       0x1EEF2,
+       0x1F000,
+       0x1F02C,
+       0x1F030,
+       0x1F094,
+       0x1F0A0,
+       0x1F0AF,
+       0x1F0B1,
+       0x1F0C0,
+       0x1F0C1,
+       0x1F0D0,
+       0x1F0D1,
+       0x1F0F6,
+       0x1F100,
+       0x1F10D,
+       0x1F110,
+       0x1F12F,
+       0x1F130,
+       0x1F16C,
+       0x1F170,
+       0x1F19B,
+       0x1F1E6,
+       0x1F203,
+       0x1F210,
+       0x1F23B,
+       0x1F240,
+       0x1F249,
+       0x1F250,
+       0x1F252,
+       0x1F300,
+       0x1F32D,
+       0x1F330,
+       0x1F37E,
+       0x1F380,
+       0x1F3CF,
+       0x1F3D4,
+       0x1F3F8,
+       0x1F400,
+       0x1F4FF,
+       0x1F500,
+       0x1F54B,
+       0x1F550,
+       0x1F57A,
+       0x1F57B,
+       0x1F5A4,
+       0x1F5A5,
+       0x1F643,
+       0x1F645,
+       0x1F6D0,
+       0x1F6E0,
+       0x1F6ED,
+       0x1F6F0,
+       0x1F6F4,
+       0x1F700,
+       0x1F774,
+       0x1F780,
+       0x1F7D5,
+       0x1F800,
+       0x1F80C,
+       0x1F810,
+       0x1F848,
+       0x1F850,
+       0x1F85A,
+       0x1F860,
+       0x1F888,
+       0x1F890,
+       0x1F8AE,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0001,
+       0xE0002,
+       0xE0020,
+       0xE0080,
+       0xE0100,
+       0xE01F0,
+       0xF0000,
+       0xFFFFE,
+       0x100000,
+       0x10FFFE
 };
 
 static const UV XPosixLower_invlist[] = { /* for EBCDIC 037 */
@@ -29198,1281 +67424,1281 @@ static const UV XPosixLower_invlist[] = { /* for EBCDIC 037 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       112,
-       113,
-       129,
-       138,
-       140,
-       143,
-       145,
-       157,
-       160,
-       161,
-       162,
-       170,
-       203,
-       208,
-       219,
-       224,
-       257,
-       258,
-       259,
-       260,
-       261,
-       262,
-       263,
-       264,
-       265,
-       266,
-       267,
-       268,
-       269,
-       270,
-       271,
-       272,
-       273,
-       274,
-       275,
-       276,
-       277,
-       278,
-       279,
-       280,
-       281,
-       282,
-       283,
-       284,
-       285,
-       286,
-       287,
-       288,
-       289,
-       290,
-       291,
-       292,
-       293,
-       294,
-       295,
-       296,
-       297,
-       298,
-       299,
-       300,
-       301,
-       302,
-       303,
-       304,
-       305,
-       306,
-       307,
-       308,
-       309,
-       310,
-       311,
-       313,
-       314,
-       315,
-       316,
-       317,
-       318,
-       319,
-       320,
-       321,
-       322,
-       323,
-       324,
-       325,
-       326,
-       327,
-       328,
-       330,
-       331,
-       332,
-       333,
-       334,
-       335,
-       336,
-       337,
-       338,
-       339,
-       340,
-       341,
-       342,
-       343,
-       344,
-       345,
-       346,
-       347,
-       348,
-       349,
-       350,
-       351,
-       352,
-       353,
-       354,
-       355,
-       356,
-       357,
-       358,
-       359,
-       360,
-       361,
-       362,
-       363,
-       364,
-       365,
-       366,
-       367,
-       368,
-       369,
-       370,
-       371,
-       372,
-       373,
-       374,
-       375,
-       376,
-       378,
-       379,
-       380,
-       381,
-       382,
-       385,
-       387,
-       388,
-       389,
-       390,
-       392,
-       393,
-       396,
-       398,
-       402,
-       403,
-       405,
-       406,
-       409,
-       412,
-       414,
-       415,
-       417,
-       418,
-       419,
-       420,
-       421,
-       422,
-       424,
-       425,
-       426,
-       428,
-       429,
-       430,
-       432,
-       433,
-       436,
-       437,
-       438,
-       439,
-       441,
-       443,
-       445,
-       448,
-       454,
-       455,
-       457,
-       458,
-       460,
-       461,
-       462,
-       463,
-       464,
-       465,
-       466,
-       467,
-       468,
-       469,
-       470,
-       471,
-       472,
-       473,
-       474,
-       475,
-       476,
-       478,
-       479,
-       480,
-       481,
-       482,
-       483,
-       484,
-       485,
-       486,
-       487,
-       488,
-       489,
-       490,
-       491,
-       492,
-       493,
-       494,
-       495,
-       497,
-       499,
-       500,
-       501,
-       502,
-       505,
-       506,
-       507,
-       508,
-       509,
-       510,
-       511,
-       512,
-       513,
-       514,
-       515,
-       516,
-       517,
-       518,
-       519,
-       520,
-       521,
-       522,
-       523,
-       524,
-       525,
-       526,
-       527,
-       528,
-       529,
-       530,
-       531,
-       532,
-       533,
-       534,
-       535,
-       536,
-       537,
-       538,
-       539,
-       540,
-       541,
-       542,
-       543,
-       544,
-       545,
-       546,
-       547,
-       548,
-       549,
-       550,
-       551,
-       552,
-       553,
-       554,
-       555,
-       556,
-       557,
-       558,
-       559,
-       560,
-       561,
-       562,
-       563,
-       570,
-       572,
-       573,
-       575,
-       577,
-       578,
-       579,
-       583,
-       584,
-       585,
-       586,
-       587,
-       588,
-       589,
-       590,
-       591,
-       660,
-       661,
-       697,
-       704,
-       706,
-       736,
-       741,
-       837,
-       838,
-       881,
-       882,
-       883,
-       884,
-       887,
-       888,
-       890,
-       894,
-       912,
-       913,
-       940,
-       975,
-       976,
-       978,
-       981,
-       984,
-       985,
-       986,
-       987,
-       988,
-       989,
-       990,
-       991,
-       992,
-       993,
-       994,
-       995,
-       996,
-       997,
-       998,
-       999,
-       1000,
-       1001,
-       1002,
-       1003,
-       1004,
-       1005,
-       1006,
-       1007,
-       1012,
-       1013,
-       1014,
-       1016,
-       1017,
-       1019,
-       1021,
-       1072,
-       1120,
-       1121,
-       1122,
-       1123,
-       1124,
-       1125,
-       1126,
-       1127,
-       1128,
-       1129,
-       1130,
-       1131,
-       1132,
-       1133,
-       1134,
-       1135,
-       1136,
-       1137,
-       1138,
-       1139,
-       1140,
-       1141,
-       1142,
-       1143,
-       1144,
-       1145,
-       1146,
-       1147,
-       1148,
-       1149,
-       1150,
-       1151,
-       1152,
-       1153,
-       1154,
-       1163,
-       1164,
-       1165,
-       1166,
-       1167,
-       1168,
-       1169,
-       1170,
-       1171,
-       1172,
-       1173,
-       1174,
-       1175,
-       1176,
-       1177,
-       1178,
-       1179,
-       1180,
-       1181,
-       1182,
-       1183,
-       1184,
-       1185,
-       1186,
-       1187,
-       1188,
-       1189,
-       1190,
-       1191,
-       1192,
-       1193,
-       1194,
-       1195,
-       1196,
-       1197,
-       1198,
-       1199,
-       1200,
-       1201,
-       1202,
-       1203,
-       1204,
-       1205,
-       1206,
-       1207,
-       1208,
-       1209,
-       1210,
-       1211,
-       1212,
-       1213,
-       1214,
-       1215,
-       1216,
-       1218,
-       1219,
-       1220,
-       1221,
-       1222,
-       1223,
-       1224,
-       1225,
-       1226,
-       1227,
-       1228,
-       1229,
-       1230,
-       1232,
-       1233,
-       1234,
-       1235,
-       1236,
-       1237,
-       1238,
-       1239,
-       1240,
-       1241,
-       1242,
-       1243,
-       1244,
-       1245,
-       1246,
-       1247,
-       1248,
-       1249,
-       1250,
-       1251,
-       1252,
-       1253,
-       1254,
-       1255,
-       1256,
-       1257,
-       1258,
-       1259,
-       1260,
-       1261,
-       1262,
-       1263,
-       1264,
-       1265,
-       1266,
-       1267,
-       1268,
-       1269,
-       1270,
-       1271,
-       1272,
-       1273,
-       1274,
-       1275,
-       1276,
-       1277,
-       1278,
-       1279,
-       1280,
-       1281,
-       1282,
-       1283,
-       1284,
-       1285,
-       1286,
-       1287,
-       1288,
-       1289,
-       1290,
-       1291,
-       1292,
-       1293,
-       1294,
-       1295,
-       1296,
-       1297,
-       1298,
-       1299,
-       1300,
-       1301,
-       1302,
-       1303,
-       1304,
-       1305,
-       1306,
-       1307,
-       1308,
-       1309,
-       1310,
-       1311,
-       1312,
-       1313,
-       1314,
-       1315,
-       1316,
-       1317,
-       1318,
-       1319,
-       1320,
-       1321,
-       1322,
-       1323,
-       1324,
-       1325,
-       1326,
-       1327,
-       1328,
-       1377,
-       1416,
-       7424,
-       7616,
-       7681,
-       7682,
-       7683,
-       7684,
-       7685,
-       7686,
-       7687,
-       7688,
-       7689,
-       7690,
-       7691,
-       7692,
-       7693,
-       7694,
-       7695,
-       7696,
-       7697,
-       7698,
-       7699,
-       7700,
-       7701,
-       7702,
-       7703,
-       7704,
-       7705,
-       7706,
-       7707,
-       7708,
-       7709,
-       7710,
-       7711,
-       7712,
-       7713,
-       7714,
-       7715,
-       7716,
-       7717,
-       7718,
-       7719,
-       7720,
-       7721,
-       7722,
-       7723,
-       7724,
-       7725,
-       7726,
-       7727,
-       7728,
-       7729,
-       7730,
-       7731,
-       7732,
-       7733,
-       7734,
-       7735,
-       7736,
-       7737,
-       7738,
-       7739,
-       7740,
-       7741,
-       7742,
-       7743,
-       7744,
-       7745,
-       7746,
-       7747,
-       7748,
-       7749,
-       7750,
-       7751,
-       7752,
-       7753,
-       7754,
-       7755,
-       7756,
-       7757,
-       7758,
-       7759,
-       7760,
-       7761,
-       7762,
-       7763,
-       7764,
-       7765,
-       7766,
-       7767,
-       7768,
-       7769,
-       7770,
-       7771,
-       7772,
-       7773,
-       7774,
-       7775,
-       7776,
-       7777,
-       7778,
-       7779,
-       7780,
-       7781,
-       7782,
-       7783,
-       7784,
-       7785,
-       7786,
-       7787,
-       7788,
-       7789,
-       7790,
-       7791,
-       7792,
-       7793,
-       7794,
-       7795,
-       7796,
-       7797,
-       7798,
-       7799,
-       7800,
-       7801,
-       7802,
-       7803,
-       7804,
-       7805,
-       7806,
-       7807,
-       7808,
-       7809,
-       7810,
-       7811,
-       7812,
-       7813,
-       7814,
-       7815,
-       7816,
-       7817,
-       7818,
-       7819,
-       7820,
-       7821,
-       7822,
-       7823,
-       7824,
-       7825,
-       7826,
-       7827,
-       7828,
-       7829,
-       7838,
-       7839,
-       7840,
-       7841,
-       7842,
-       7843,
-       7844,
-       7845,
-       7846,
-       7847,
-       7848,
-       7849,
-       7850,
-       7851,
-       7852,
-       7853,
-       7854,
-       7855,
-       7856,
-       7857,
-       7858,
-       7859,
-       7860,
-       7861,
-       7862,
-       7863,
-       7864,
-       7865,
-       7866,
-       7867,
-       7868,
-       7869,
-       7870,
-       7871,
-       7872,
-       7873,
-       7874,
-       7875,
-       7876,
-       7877,
-       7878,
-       7879,
-       7880,
-       7881,
-       7882,
-       7883,
-       7884,
-       7885,
-       7886,
-       7887,
-       7888,
-       7889,
-       7890,
-       7891,
-       7892,
-       7893,
-       7894,
-       7895,
-       7896,
-       7897,
-       7898,
-       7899,
-       7900,
-       7901,
-       7902,
-       7903,
-       7904,
-       7905,
-       7906,
-       7907,
-       7908,
-       7909,
-       7910,
-       7911,
-       7912,
-       7913,
-       7914,
-       7915,
-       7916,
-       7917,
-       7918,
-       7919,
-       7920,
-       7921,
-       7922,
-       7923,
-       7924,
-       7925,
-       7926,
-       7927,
-       7928,
-       7929,
-       7930,
-       7931,
-       7932,
-       7933,
-       7934,
-       7935,
-       7944,
-       7952,
-       7958,
-       7968,
-       7976,
-       7984,
-       7992,
-       8000,
-       8006,
-       8016,
-       8024,
-       8032,
-       8040,
-       8048,
-       8062,
-       8064,
-       8072,
-       8080,
-       8088,
-       8096,
-       8104,
-       8112,
-       8117,
-       8118,
-       8120,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8136,
-       8144,
-       8148,
-       8150,
-       8152,
-       8160,
-       8168,
-       8178,
-       8181,
-       8182,
-       8184,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8458,
-       8459,
-       8462,
-       8464,
-       8467,
-       8468,
-       8495,
-       8496,
-       8500,
-       8501,
-       8505,
-       8506,
-       8508,
-       8510,
-       8518,
-       8522,
-       8526,
-       8527,
-       8560,
-       8576,
-       8580,
-       8581,
-       9424,
-       9450,
-       11312,
-       11359,
-       11361,
-       11362,
-       11365,
-       11367,
-       11368,
-       11369,
-       11370,
-       11371,
-       11372,
-       11373,
-       11377,
-       11378,
-       11379,
-       11381,
-       11382,
-       11390,
-       11393,
-       11394,
-       11395,
-       11396,
-       11397,
-       11398,
-       11399,
-       11400,
-       11401,
-       11402,
-       11403,
-       11404,
-       11405,
-       11406,
-       11407,
-       11408,
-       11409,
-       11410,
-       11411,
-       11412,
-       11413,
-       11414,
-       11415,
-       11416,
-       11417,
-       11418,
-       11419,
-       11420,
-       11421,
-       11422,
-       11423,
-       11424,
-       11425,
-       11426,
-       11427,
-       11428,
-       11429,
-       11430,
-       11431,
-       11432,
-       11433,
-       11434,
-       11435,
-       11436,
-       11437,
-       11438,
-       11439,
-       11440,
-       11441,
-       11442,
-       11443,
-       11444,
-       11445,
-       11446,
-       11447,
-       11448,
-       11449,
-       11450,
-       11451,
-       11452,
-       11453,
-       11454,
-       11455,
-       11456,
-       11457,
-       11458,
-       11459,
-       11460,
-       11461,
-       11462,
-       11463,
-       11464,
-       11465,
-       11466,
-       11467,
-       11468,
-       11469,
-       11470,
-       11471,
-       11472,
-       11473,
-       11474,
-       11475,
-       11476,
-       11477,
-       11478,
-       11479,
-       11480,
-       11481,
-       11482,
-       11483,
-       11484,
-       11485,
-       11486,
-       11487,
-       11488,
-       11489,
-       11490,
-       11491,
-       11493,
-       11500,
-       11501,
-       11502,
-       11503,
-       11507,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       42561,
-       42562,
-       42563,
-       42564,
-       42565,
-       42566,
-       42567,
-       42568,
-       42569,
-       42570,
-       42571,
-       42572,
-       42573,
-       42574,
-       42575,
-       42576,
-       42577,
-       42578,
-       42579,
-       42580,
-       42581,
-       42582,
-       42583,
-       42584,
-       42585,
-       42586,
-       42587,
-       42588,
-       42589,
-       42590,
-       42591,
-       42592,
-       42593,
-       42594,
-       42595,
-       42596,
-       42597,
-       42598,
-       42599,
-       42600,
-       42601,
-       42602,
-       42603,
-       42604,
-       42605,
-       42606,
-       42625,
-       42626,
-       42627,
-       42628,
-       42629,
-       42630,
-       42631,
-       42632,
-       42633,
-       42634,
-       42635,
-       42636,
-       42637,
-       42638,
-       42639,
-       42640,
-       42641,
-       42642,
-       42643,
-       42644,
-       42645,
-       42646,
-       42647,
-       42648,
-       42649,
-       42650,
-       42651,
-       42654,
-       42787,
-       42788,
-       42789,
-       42790,
-       42791,
-       42792,
-       42793,
-       42794,
-       42795,
-       42796,
-       42797,
-       42798,
-       42799,
-       42802,
-       42803,
-       42804,
-       42805,
-       42806,
-       42807,
-       42808,
-       42809,
-       42810,
-       42811,
-       42812,
-       42813,
-       42814,
-       42815,
-       42816,
-       42817,
-       42818,
-       42819,
-       42820,
-       42821,
-       42822,
-       42823,
-       42824,
-       42825,
-       42826,
-       42827,
-       42828,
-       42829,
-       42830,
-       42831,
-       42832,
-       42833,
-       42834,
-       42835,
-       42836,
-       42837,
-       42838,
-       42839,
-       42840,
-       42841,
-       42842,
-       42843,
-       42844,
-       42845,
-       42846,
-       42847,
-       42848,
-       42849,
-       42850,
-       42851,
-       42852,
-       42853,
-       42854,
-       42855,
-       42856,
-       42857,
-       42858,
-       42859,
-       42860,
-       42861,
-       42862,
-       42863,
-       42873,
-       42874,
-       42875,
-       42876,
-       42877,
-       42879,
-       42880,
-       42881,
-       42882,
-       42883,
-       42884,
-       42885,
-       42886,
-       42887,
-       42888,
-       42892,
-       42893,
-       42894,
-       42895,
-       42897,
-       42898,
-       42899,
-       42902,
-       42903,
-       42904,
-       42905,
-       42906,
-       42907,
-       42908,
-       42909,
-       42910,
-       42911,
-       42912,
-       42913,
-       42914,
-       42915,
-       42916,
-       42917,
-       42918,
-       42919,
-       42920,
-       42921,
-       42922,
-       43000,
-       43003,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       64256,
-       64263,
-       64275,
-       64280,
-       65345,
-       65371,
-       66600,
-       66640,
-       71872,
-       71904,
-       119834,
-       119860,
-       119886,
-       119893,
-       119894,
-       119912,
-       119938,
-       119964,
-       119990,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120016,
-       120042,
-       120068,
-       120094,
-       120120,
-       120146,
-       120172,
-       120198,
-       120224,
-       120250,
-       120276,
-       120302,
-       120328,
-       120354,
-       120380,
-       120406,
-       120432,
-       120458,
-       120486,
-       120514,
-       120539,
-       120540,
-       120546,
-       120572,
-       120597,
-       120598,
-       120604,
-       120630,
-       120655,
-       120656,
-       120662,
-       120688,
-       120713,
-       120714,
-       120720,
-       120746,
-       120771,
-       120772,
-       120778,
-       120779,
-       120780
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x70,
+       0x71,
+       0x81,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xCB,
+       0xD0,
+       0xDB,
+       0xE0,
+       0x101,
+       0x102,
+       0x103,
+       0x104,
+       0x105,
+       0x106,
+       0x107,
+       0x108,
+       0x109,
+       0x10A,
+       0x10B,
+       0x10C,
+       0x10D,
+       0x10E,
+       0x10F,
+       0x110,
+       0x111,
+       0x112,
+       0x113,
+       0x114,
+       0x115,
+       0x116,
+       0x117,
+       0x118,
+       0x119,
+       0x11A,
+       0x11B,
+       0x11C,
+       0x11D,
+       0x11E,
+       0x11F,
+       0x120,
+       0x121,
+       0x122,
+       0x123,
+       0x124,
+       0x125,
+       0x126,
+       0x127,
+       0x128,
+       0x129,
+       0x12A,
+       0x12B,
+       0x12C,
+       0x12D,
+       0x12E,
+       0x12F,
+       0x130,
+       0x131,
+       0x132,
+       0x133,
+       0x134,
+       0x135,
+       0x136,
+       0x137,
+       0x139,
+       0x13A,
+       0x13B,
+       0x13C,
+       0x13D,
+       0x13E,
+       0x13F,
+       0x140,
+       0x141,
+       0x142,
+       0x143,
+       0x144,
+       0x145,
+       0x146,
+       0x147,
+       0x148,
+       0x14A,
+       0x14B,
+       0x14C,
+       0x14D,
+       0x14E,
+       0x14F,
+       0x150,
+       0x151,
+       0x152,
+       0x153,
+       0x154,
+       0x155,
+       0x156,
+       0x157,
+       0x158,
+       0x159,
+       0x15A,
+       0x15B,
+       0x15C,
+       0x15D,
+       0x15E,
+       0x15F,
+       0x160,
+       0x161,
+       0x162,
+       0x163,
+       0x164,
+       0x165,
+       0x166,
+       0x167,
+       0x168,
+       0x169,
+       0x16A,
+       0x16B,
+       0x16C,
+       0x16D,
+       0x16E,
+       0x16F,
+       0x170,
+       0x171,
+       0x172,
+       0x173,
+       0x174,
+       0x175,
+       0x176,
+       0x177,
+       0x178,
+       0x17A,
+       0x17B,
+       0x17C,
+       0x17D,
+       0x17E,
+       0x181,
+       0x183,
+       0x184,
+       0x185,
+       0x186,
+       0x188,
+       0x189,
+       0x18C,
+       0x18E,
+       0x192,
+       0x193,
+       0x195,
+       0x196,
+       0x199,
+       0x19C,
+       0x19E,
+       0x19F,
+       0x1A1,
+       0x1A2,
+       0x1A3,
+       0x1A4,
+       0x1A5,
+       0x1A6,
+       0x1A8,
+       0x1A9,
+       0x1AA,
+       0x1AC,
+       0x1AD,
+       0x1AE,
+       0x1B0,
+       0x1B1,
+       0x1B4,
+       0x1B5,
+       0x1B6,
+       0x1B7,
+       0x1B9,
+       0x1BB,
+       0x1BD,
+       0x1C0,
+       0x1C6,
+       0x1C7,
+       0x1C9,
+       0x1CA,
+       0x1CC,
+       0x1CD,
+       0x1CE,
+       0x1CF,
+       0x1D0,
+       0x1D1,
+       0x1D2,
+       0x1D3,
+       0x1D4,
+       0x1D5,
+       0x1D6,
+       0x1D7,
+       0x1D8,
+       0x1D9,
+       0x1DA,
+       0x1DB,
+       0x1DC,
+       0x1DE,
+       0x1DF,
+       0x1E0,
+       0x1E1,
+       0x1E2,
+       0x1E3,
+       0x1E4,
+       0x1E5,
+       0x1E6,
+       0x1E7,
+       0x1E8,
+       0x1E9,
+       0x1EA,
+       0x1EB,
+       0x1EC,
+       0x1ED,
+       0x1EE,
+       0x1EF,
+       0x1F1,
+       0x1F3,
+       0x1F4,
+       0x1F5,
+       0x1F6,
+       0x1F9,
+       0x1FA,
+       0x1FB,
+       0x1FC,
+       0x1FD,
+       0x1FE,
+       0x1FF,
+       0x200,
+       0x201,
+       0x202,
+       0x203,
+       0x204,
+       0x205,
+       0x206,
+       0x207,
+       0x208,
+       0x209,
+       0x20A,
+       0x20B,
+       0x20C,
+       0x20D,
+       0x20E,
+       0x20F,
+       0x210,
+       0x211,
+       0x212,
+       0x213,
+       0x214,
+       0x215,
+       0x216,
+       0x217,
+       0x218,
+       0x219,
+       0x21A,
+       0x21B,
+       0x21C,
+       0x21D,
+       0x21E,
+       0x21F,
+       0x220,
+       0x221,
+       0x222,
+       0x223,
+       0x224,
+       0x225,
+       0x226,
+       0x227,
+       0x228,
+       0x229,
+       0x22A,
+       0x22B,
+       0x22C,
+       0x22D,
+       0x22E,
+       0x22F,
+       0x230,
+       0x231,
+       0x232,
+       0x233,
+       0x23A,
+       0x23C,
+       0x23D,
+       0x23F,
+       0x241,
+       0x242,
+       0x243,
+       0x247,
+       0x248,
+       0x249,
+       0x24A,
+       0x24B,
+       0x24C,
+       0x24D,
+       0x24E,
+       0x24F,
+       0x294,
+       0x295,
+       0x2B9,
+       0x2C0,
+       0x2C2,
+       0x2E0,
+       0x2E5,
+       0x345,
+       0x346,
+       0x371,
+       0x372,
+       0x373,
+       0x374,
+       0x377,
+       0x378,
+       0x37A,
+       0x37E,
+       0x390,
+       0x391,
+       0x3AC,
+       0x3CF,
+       0x3D0,
+       0x3D2,
+       0x3D5,
+       0x3D8,
+       0x3D9,
+       0x3DA,
+       0x3DB,
+       0x3DC,
+       0x3DD,
+       0x3DE,
+       0x3DF,
+       0x3E0,
+       0x3E1,
+       0x3E2,
+       0x3E3,
+       0x3E4,
+       0x3E5,
+       0x3E6,
+       0x3E7,
+       0x3E8,
+       0x3E9,
+       0x3EA,
+       0x3EB,
+       0x3EC,
+       0x3ED,
+       0x3EE,
+       0x3EF,
+       0x3F4,
+       0x3F5,
+       0x3F6,
+       0x3F8,
+       0x3F9,
+       0x3FB,
+       0x3FD,
+       0x430,
+       0x460,
+       0x461,
+       0x462,
+       0x463,
+       0x464,
+       0x465,
+       0x466,
+       0x467,
+       0x468,
+       0x469,
+       0x46A,
+       0x46B,
+       0x46C,
+       0x46D,
+       0x46E,
+       0x46F,
+       0x470,
+       0x471,
+       0x472,
+       0x473,
+       0x474,
+       0x475,
+       0x476,
+       0x477,
+       0x478,
+       0x479,
+       0x47A,
+       0x47B,
+       0x47C,
+       0x47D,
+       0x47E,
+       0x47F,
+       0x480,
+       0x481,
+       0x482,
+       0x48B,
+       0x48C,
+       0x48D,
+       0x48E,
+       0x48F,
+       0x490,
+       0x491,
+       0x492,
+       0x493,
+       0x494,
+       0x495,
+       0x496,
+       0x497,
+       0x498,
+       0x499,
+       0x49A,
+       0x49B,
+       0x49C,
+       0x49D,
+       0x49E,
+       0x49F,
+       0x4A0,
+       0x4A1,
+       0x4A2,
+       0x4A3,
+       0x4A4,
+       0x4A5,
+       0x4A6,
+       0x4A7,
+       0x4A8,
+       0x4A9,
+       0x4AA,
+       0x4AB,
+       0x4AC,
+       0x4AD,
+       0x4AE,
+       0x4AF,
+       0x4B0,
+       0x4B1,
+       0x4B2,
+       0x4B3,
+       0x4B4,
+       0x4B5,
+       0x4B6,
+       0x4B7,
+       0x4B8,
+       0x4B9,
+       0x4BA,
+       0x4BB,
+       0x4BC,
+       0x4BD,
+       0x4BE,
+       0x4BF,
+       0x4C0,
+       0x4C2,
+       0x4C3,
+       0x4C4,
+       0x4C5,
+       0x4C6,
+       0x4C7,
+       0x4C8,
+       0x4C9,
+       0x4CA,
+       0x4CB,
+       0x4CC,
+       0x4CD,
+       0x4CE,
+       0x4D0,
+       0x4D1,
+       0x4D2,
+       0x4D3,
+       0x4D4,
+       0x4D5,
+       0x4D6,
+       0x4D7,
+       0x4D8,
+       0x4D9,
+       0x4DA,
+       0x4DB,
+       0x4DC,
+       0x4DD,
+       0x4DE,
+       0x4DF,
+       0x4E0,
+       0x4E1,
+       0x4E2,
+       0x4E3,
+       0x4E4,
+       0x4E5,
+       0x4E6,
+       0x4E7,
+       0x4E8,
+       0x4E9,
+       0x4EA,
+       0x4EB,
+       0x4EC,
+       0x4ED,
+       0x4EE,
+       0x4EF,
+       0x4F0,
+       0x4F1,
+       0x4F2,
+       0x4F3,
+       0x4F4,
+       0x4F5,
+       0x4F6,
+       0x4F7,
+       0x4F8,
+       0x4F9,
+       0x4FA,
+       0x4FB,
+       0x4FC,
+       0x4FD,
+       0x4FE,
+       0x4FF,
+       0x500,
+       0x501,
+       0x502,
+       0x503,
+       0x504,
+       0x505,
+       0x506,
+       0x507,
+       0x508,
+       0x509,
+       0x50A,
+       0x50B,
+       0x50C,
+       0x50D,
+       0x50E,
+       0x50F,
+       0x510,
+       0x511,
+       0x512,
+       0x513,
+       0x514,
+       0x515,
+       0x516,
+       0x517,
+       0x518,
+       0x519,
+       0x51A,
+       0x51B,
+       0x51C,
+       0x51D,
+       0x51E,
+       0x51F,
+       0x520,
+       0x521,
+       0x522,
+       0x523,
+       0x524,
+       0x525,
+       0x526,
+       0x527,
+       0x528,
+       0x529,
+       0x52A,
+       0x52B,
+       0x52C,
+       0x52D,
+       0x52E,
+       0x52F,
+       0x530,
+       0x561,
+       0x588,
+       0x1D00,
+       0x1DC0,
+       0x1E01,
+       0x1E02,
+       0x1E03,
+       0x1E04,
+       0x1E05,
+       0x1E06,
+       0x1E07,
+       0x1E08,
+       0x1E09,
+       0x1E0A,
+       0x1E0B,
+       0x1E0C,
+       0x1E0D,
+       0x1E0E,
+       0x1E0F,
+       0x1E10,
+       0x1E11,
+       0x1E12,
+       0x1E13,
+       0x1E14,
+       0x1E15,
+       0x1E16,
+       0x1E17,
+       0x1E18,
+       0x1E19,
+       0x1E1A,
+       0x1E1B,
+       0x1E1C,
+       0x1E1D,
+       0x1E1E,
+       0x1E1F,
+       0x1E20,
+       0x1E21,
+       0x1E22,
+       0x1E23,
+       0x1E24,
+       0x1E25,
+       0x1E26,
+       0x1E27,
+       0x1E28,
+       0x1E29,
+       0x1E2A,
+       0x1E2B,
+       0x1E2C,
+       0x1E2D,
+       0x1E2E,
+       0x1E2F,
+       0x1E30,
+       0x1E31,
+       0x1E32,
+       0x1E33,
+       0x1E34,
+       0x1E35,
+       0x1E36,
+       0x1E37,
+       0x1E38,
+       0x1E39,
+       0x1E3A,
+       0x1E3B,
+       0x1E3C,
+       0x1E3D,
+       0x1E3E,
+       0x1E3F,
+       0x1E40,
+       0x1E41,
+       0x1E42,
+       0x1E43,
+       0x1E44,
+       0x1E45,
+       0x1E46,
+       0x1E47,
+       0x1E48,
+       0x1E49,
+       0x1E4A,
+       0x1E4B,
+       0x1E4C,
+       0x1E4D,
+       0x1E4E,
+       0x1E4F,
+       0x1E50,
+       0x1E51,
+       0x1E52,
+       0x1E53,
+       0x1E54,
+       0x1E55,
+       0x1E56,
+       0x1E57,
+       0x1E58,
+       0x1E59,
+       0x1E5A,
+       0x1E5B,
+       0x1E5C,
+       0x1E5D,
+       0x1E5E,
+       0x1E5F,
+       0x1E60,
+       0x1E61,
+       0x1E62,
+       0x1E63,
+       0x1E64,
+       0x1E65,
+       0x1E66,
+       0x1E67,
+       0x1E68,
+       0x1E69,
+       0x1E6A,
+       0x1E6B,
+       0x1E6C,
+       0x1E6D,
+       0x1E6E,
+       0x1E6F,
+       0x1E70,
+       0x1E71,
+       0x1E72,
+       0x1E73,
+       0x1E74,
+       0x1E75,
+       0x1E76,
+       0x1E77,
+       0x1E78,
+       0x1E79,
+       0x1E7A,
+       0x1E7B,
+       0x1E7C,
+       0x1E7D,
+       0x1E7E,
+       0x1E7F,
+       0x1E80,
+       0x1E81,
+       0x1E82,
+       0x1E83,
+       0x1E84,
+       0x1E85,
+       0x1E86,
+       0x1E87,
+       0x1E88,
+       0x1E89,
+       0x1E8A,
+       0x1E8B,
+       0x1E8C,
+       0x1E8D,
+       0x1E8E,
+       0x1E8F,
+       0x1E90,
+       0x1E91,
+       0x1E92,
+       0x1E93,
+       0x1E94,
+       0x1E95,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1EA1,
+       0x1EA2,
+       0x1EA3,
+       0x1EA4,
+       0x1EA5,
+       0x1EA6,
+       0x1EA7,
+       0x1EA8,
+       0x1EA9,
+       0x1EAA,
+       0x1EAB,
+       0x1EAC,
+       0x1EAD,
+       0x1EAE,
+       0x1EAF,
+       0x1EB0,
+       0x1EB1,
+       0x1EB2,
+       0x1EB3,
+       0x1EB4,
+       0x1EB5,
+       0x1EB6,
+       0x1EB7,
+       0x1EB8,
+       0x1EB9,
+       0x1EBA,
+       0x1EBB,
+       0x1EBC,
+       0x1EBD,
+       0x1EBE,
+       0x1EBF,
+       0x1EC0,
+       0x1EC1,
+       0x1EC2,
+       0x1EC3,
+       0x1EC4,
+       0x1EC5,
+       0x1EC6,
+       0x1EC7,
+       0x1EC8,
+       0x1EC9,
+       0x1ECA,
+       0x1ECB,
+       0x1ECC,
+       0x1ECD,
+       0x1ECE,
+       0x1ECF,
+       0x1ED0,
+       0x1ED1,
+       0x1ED2,
+       0x1ED3,
+       0x1ED4,
+       0x1ED5,
+       0x1ED6,
+       0x1ED7,
+       0x1ED8,
+       0x1ED9,
+       0x1EDA,
+       0x1EDB,
+       0x1EDC,
+       0x1EDD,
+       0x1EDE,
+       0x1EDF,
+       0x1EE0,
+       0x1EE1,
+       0x1EE2,
+       0x1EE3,
+       0x1EE4,
+       0x1EE5,
+       0x1EE6,
+       0x1EE7,
+       0x1EE8,
+       0x1EE9,
+       0x1EEA,
+       0x1EEB,
+       0x1EEC,
+       0x1EED,
+       0x1EEE,
+       0x1EEF,
+       0x1EF0,
+       0x1EF1,
+       0x1EF2,
+       0x1EF3,
+       0x1EF4,
+       0x1EF5,
+       0x1EF6,
+       0x1EF7,
+       0x1EF8,
+       0x1EF9,
+       0x1EFA,
+       0x1EFB,
+       0x1EFC,
+       0x1EFD,
+       0x1EFE,
+       0x1EFF,
+       0x1F08,
+       0x1F10,
+       0x1F16,
+       0x1F20,
+       0x1F28,
+       0x1F30,
+       0x1F38,
+       0x1F40,
+       0x1F46,
+       0x1F50,
+       0x1F58,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1F7E,
+       0x1F80,
+       0x1F88,
+       0x1F90,
+       0x1F98,
+       0x1FA0,
+       0x1FA8,
+       0x1FB0,
+       0x1FB5,
+       0x1FB6,
+       0x1FB8,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FC8,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FD8,
+       0x1FE0,
+       0x1FE8,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FF8,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x210A,
+       0x210B,
+       0x210E,
+       0x2110,
+       0x2113,
+       0x2114,
+       0x212F,
+       0x2130,
+       0x2134,
+       0x2135,
+       0x2139,
+       0x213A,
+       0x213C,
+       0x213E,
+       0x2146,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2170,
+       0x2180,
+       0x2184,
+       0x2185,
+       0x24D0,
+       0x24EA,
+       0x2C30,
+       0x2C5F,
+       0x2C61,
+       0x2C62,
+       0x2C65,
+       0x2C67,
+       0x2C68,
+       0x2C69,
+       0x2C6A,
+       0x2C6B,
+       0x2C6C,
+       0x2C6D,
+       0x2C71,
+       0x2C72,
+       0x2C73,
+       0x2C75,
+       0x2C76,
+       0x2C7E,
+       0x2C81,
+       0x2C82,
+       0x2C83,
+       0x2C84,
+       0x2C85,
+       0x2C86,
+       0x2C87,
+       0x2C88,
+       0x2C89,
+       0x2C8A,
+       0x2C8B,
+       0x2C8C,
+       0x2C8D,
+       0x2C8E,
+       0x2C8F,
+       0x2C90,
+       0x2C91,
+       0x2C92,
+       0x2C93,
+       0x2C94,
+       0x2C95,
+       0x2C96,
+       0x2C97,
+       0x2C98,
+       0x2C99,
+       0x2C9A,
+       0x2C9B,
+       0x2C9C,
+       0x2C9D,
+       0x2C9E,
+       0x2C9F,
+       0x2CA0,
+       0x2CA1,
+       0x2CA2,
+       0x2CA3,
+       0x2CA4,
+       0x2CA5,
+       0x2CA6,
+       0x2CA7,
+       0x2CA8,
+       0x2CA9,
+       0x2CAA,
+       0x2CAB,
+       0x2CAC,
+       0x2CAD,
+       0x2CAE,
+       0x2CAF,
+       0x2CB0,
+       0x2CB1,
+       0x2CB2,
+       0x2CB3,
+       0x2CB4,
+       0x2CB5,
+       0x2CB6,
+       0x2CB7,
+       0x2CB8,
+       0x2CB9,
+       0x2CBA,
+       0x2CBB,
+       0x2CBC,
+       0x2CBD,
+       0x2CBE,
+       0x2CBF,
+       0x2CC0,
+       0x2CC1,
+       0x2CC2,
+       0x2CC3,
+       0x2CC4,
+       0x2CC5,
+       0x2CC6,
+       0x2CC7,
+       0x2CC8,
+       0x2CC9,
+       0x2CCA,
+       0x2CCB,
+       0x2CCC,
+       0x2CCD,
+       0x2CCE,
+       0x2CCF,
+       0x2CD0,
+       0x2CD1,
+       0x2CD2,
+       0x2CD3,
+       0x2CD4,
+       0x2CD5,
+       0x2CD6,
+       0x2CD7,
+       0x2CD8,
+       0x2CD9,
+       0x2CDA,
+       0x2CDB,
+       0x2CDC,
+       0x2CDD,
+       0x2CDE,
+       0x2CDF,
+       0x2CE0,
+       0x2CE1,
+       0x2CE2,
+       0x2CE3,
+       0x2CE5,
+       0x2CEC,
+       0x2CED,
+       0x2CEE,
+       0x2CEF,
+       0x2CF3,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0xA641,
+       0xA642,
+       0xA643,
+       0xA644,
+       0xA645,
+       0xA646,
+       0xA647,
+       0xA648,
+       0xA649,
+       0xA64A,
+       0xA64B,
+       0xA64C,
+       0xA64D,
+       0xA64E,
+       0xA64F,
+       0xA650,
+       0xA651,
+       0xA652,
+       0xA653,
+       0xA654,
+       0xA655,
+       0xA656,
+       0xA657,
+       0xA658,
+       0xA659,
+       0xA65A,
+       0xA65B,
+       0xA65C,
+       0xA65D,
+       0xA65E,
+       0xA65F,
+       0xA660,
+       0xA661,
+       0xA662,
+       0xA663,
+       0xA664,
+       0xA665,
+       0xA666,
+       0xA667,
+       0xA668,
+       0xA669,
+       0xA66A,
+       0xA66B,
+       0xA66C,
+       0xA66D,
+       0xA66E,
+       0xA681,
+       0xA682,
+       0xA683,
+       0xA684,
+       0xA685,
+       0xA686,
+       0xA687,
+       0xA688,
+       0xA689,
+       0xA68A,
+       0xA68B,
+       0xA68C,
+       0xA68D,
+       0xA68E,
+       0xA68F,
+       0xA690,
+       0xA691,
+       0xA692,
+       0xA693,
+       0xA694,
+       0xA695,
+       0xA696,
+       0xA697,
+       0xA698,
+       0xA699,
+       0xA69A,
+       0xA69B,
+       0xA69E,
+       0xA723,
+       0xA724,
+       0xA725,
+       0xA726,
+       0xA727,
+       0xA728,
+       0xA729,
+       0xA72A,
+       0xA72B,
+       0xA72C,
+       0xA72D,
+       0xA72E,
+       0xA72F,
+       0xA732,
+       0xA733,
+       0xA734,
+       0xA735,
+       0xA736,
+       0xA737,
+       0xA738,
+       0xA739,
+       0xA73A,
+       0xA73B,
+       0xA73C,
+       0xA73D,
+       0xA73E,
+       0xA73F,
+       0xA740,
+       0xA741,
+       0xA742,
+       0xA743,
+       0xA744,
+       0xA745,
+       0xA746,
+       0xA747,
+       0xA748,
+       0xA749,
+       0xA74A,
+       0xA74B,
+       0xA74C,
+       0xA74D,
+       0xA74E,
+       0xA74F,
+       0xA750,
+       0xA751,
+       0xA752,
+       0xA753,
+       0xA754,
+       0xA755,
+       0xA756,
+       0xA757,
+       0xA758,
+       0xA759,
+       0xA75A,
+       0xA75B,
+       0xA75C,
+       0xA75D,
+       0xA75E,
+       0xA75F,
+       0xA760,
+       0xA761,
+       0xA762,
+       0xA763,
+       0xA764,
+       0xA765,
+       0xA766,
+       0xA767,
+       0xA768,
+       0xA769,
+       0xA76A,
+       0xA76B,
+       0xA76C,
+       0xA76D,
+       0xA76E,
+       0xA76F,
+       0xA779,
+       0xA77A,
+       0xA77B,
+       0xA77C,
+       0xA77D,
+       0xA77F,
+       0xA780,
+       0xA781,
+       0xA782,
+       0xA783,
+       0xA784,
+       0xA785,
+       0xA786,
+       0xA787,
+       0xA788,
+       0xA78C,
+       0xA78D,
+       0xA78E,
+       0xA78F,
+       0xA791,
+       0xA792,
+       0xA793,
+       0xA796,
+       0xA797,
+       0xA798,
+       0xA799,
+       0xA79A,
+       0xA79B,
+       0xA79C,
+       0xA79D,
+       0xA79E,
+       0xA79F,
+       0xA7A0,
+       0xA7A1,
+       0xA7A2,
+       0xA7A3,
+       0xA7A4,
+       0xA7A5,
+       0xA7A6,
+       0xA7A7,
+       0xA7A8,
+       0xA7A9,
+       0xA7AA,
+       0xA7F8,
+       0xA7FB,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFF41,
+       0xFF5B,
+       0x10428,
+       0x10450,
+       0x118C0,
+       0x118E0,
+       0x1D41A,
+       0x1D434,
+       0x1D44E,
+       0x1D455,
+       0x1D456,
+       0x1D468,
+       0x1D482,
+       0x1D49C,
+       0x1D4B6,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D4D0,
+       0x1D4EA,
+       0x1D504,
+       0x1D51E,
+       0x1D538,
+       0x1D552,
+       0x1D56C,
+       0x1D586,
+       0x1D5A0,
+       0x1D5BA,
+       0x1D5D4,
+       0x1D5EE,
+       0x1D608,
+       0x1D622,
+       0x1D63C,
+       0x1D656,
+       0x1D670,
+       0x1D68A,
+       0x1D6A6,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6E2,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D71C,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D756,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D790,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CA,
+       0x1D7CB,
+       0x1D7CC
 };
 
 static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
@@ -30480,1211 +68706,1211 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       64,
-       255,
-       256,
-       888,
-       890,
-       896,
-       900,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1328,
-       1329,
-       1367,
-       1369,
-       1376,
-       1377,
-       1416,
-       1417,
-       1419,
-       1421,
-       1424,
-       1425,
-       1480,
-       1488,
-       1515,
-       1520,
-       1525,
-       1536,
-       1565,
-       1566,
-       1806,
-       1807,
-       1867,
-       1869,
-       1970,
-       1984,
-       2043,
-       2048,
-       2094,
-       2096,
-       2111,
-       2112,
-       2140,
-       2142,
-       2143,
-       2208,
-       2227,
-       2276,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2492,
-       2501,
-       2503,
-       2505,
-       2507,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2556,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2620,
-       2621,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2638,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2748,
-       2758,
-       2759,
-       2762,
-       2763,
-       2766,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2802,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2876,
-       2885,
-       2887,
-       2889,
-       2891,
-       2894,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2936,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3022,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3067,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3150,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3192,
-       3200,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3260,
-       3269,
-       3270,
-       3273,
-       3274,
-       3278,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3446,
-       3449,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3530,
-       3531,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3573,
-       3585,
-       3643,
-       3647,
-       3676,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3784,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3912,
-       3913,
-       3949,
-       3953,
-       3992,
-       3993,
-       4029,
-       4030,
-       4045,
-       4046,
-       4059,
-       4096,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4957,
-       4989,
-       4992,
-       5018,
-       5024,
-       5109,
-       5120,
-       5789,
-       5792,
-       5881,
-       5888,
-       5901,
-       5902,
-       5909,
-       5920,
-       5943,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6110,
-       6112,
-       6122,
-       6128,
-       6138,
-       6144,
-       6159,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6460,
-       6464,
-       6465,
-       6468,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6619,
-       6622,
-       6684,
-       6686,
-       6751,
-       6752,
-       6781,
-       6783,
-       6794,
-       6800,
-       6810,
-       6816,
-       6830,
-       6832,
-       6847,
-       6912,
-       6988,
-       6992,
-       7037,
-       7040,
-       7156,
-       7164,
-       7224,
-       7227,
-       7242,
-       7245,
-       7296,
-       7360,
-       7368,
-       7376,
-       7415,
-       7416,
-       7418,
-       7424,
-       7670,
-       7676,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8133,
-       8134,
-       8148,
-       8150,
-       8156,
-       8157,
-       8176,
-       8178,
-       8181,
-       8182,
-       8191,
-       8192,
-       8232,
-       8234,
-       8293,
-       8294,
-       8306,
-       8308,
-       8335,
-       8336,
-       8349,
-       8352,
-       8382,
-       8400,
-       8433,
-       8448,
-       8586,
-       8592,
-       9211,
-       9216,
-       9255,
-       9280,
-       9291,
-       9312,
-       11124,
-       11126,
-       11158,
-       11160,
-       11194,
-       11197,
-       11209,
-       11210,
-       11218,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11508,
-       11513,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11633,
-       11647,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11843,
-       11904,
-       11930,
-       11931,
-       12020,
-       12032,
-       12246,
-       12272,
-       12284,
-       12288,
-       12352,
-       12353,
-       12439,
-       12441,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12688,
-       12731,
-       12736,
-       12772,
-       12784,
-       12831,
-       12832,
-       13055,
-       13056,
-       19894,
-       19904,
-       40909,
-       40960,
-       42125,
-       42128,
-       42183,
-       42192,
-       42540,
-       42560,
-       42654,
-       42655,
-       42744,
-       42752,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43052,
-       43056,
-       43066,
-       43072,
-       43128,
-       43136,
-       43205,
-       43214,
-       43226,
-       43232,
-       43260,
-       43264,
-       43348,
-       43359,
-       43389,
-       43392,
-       43470,
-       43471,
-       43482,
-       43486,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43612,
-       43715,
-       43739,
-       43767,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43872,
-       43876,
-       43878,
-       43968,
-       44014,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       57344,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64450,
-       64467,
-       64832,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65022,
-       65024,
-       65050,
-       65056,
-       65070,
-       65072,
-       65107,
-       65108,
-       65127,
-       65128,
-       65132,
-       65136,
-       65141,
-       65142,
-       65277,
-       65279,
-       65280,
-       65281,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65504,
-       65511,
-       65512,
-       65519,
-       65529,
-       65534,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65792,
-       65795,
-       65799,
-       65844,
-       65847,
-       65933,
-       65936,
-       65948,
-       65952,
-       65953,
-       66000,
-       66046,
-       66176,
-       66205,
-       66208,
-       66257,
-       66272,
-       66300,
-       66304,
-       66340,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66463,
-       66500,
-       66504,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       66927,
-       66928,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67671,
-       67743,
-       67751,
-       67760,
-       67840,
-       67868,
-       67871,
-       67898,
-       67903,
-       67904,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68152,
-       68155,
-       68159,
-       68168,
-       68176,
-       68185,
-       68192,
-       68256,
-       68288,
-       68327,
-       68331,
-       68343,
-       68352,
-       68406,
-       68409,
-       68438,
-       68440,
-       68467,
-       68472,
-       68498,
-       68505,
-       68509,
-       68521,
-       68528,
-       68608,
-       68681,
-       69216,
-       69247,
-       69632,
-       69710,
-       69714,
-       69744,
-       69759,
-       69826,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69941,
-       69942,
-       69956,
-       69968,
-       70007,
-       70016,
-       70089,
-       70093,
-       70094,
-       70096,
-       70107,
-       70113,
-       70133,
-       70144,
-       70162,
-       70163,
-       70206,
-       70320,
-       70379,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70460,
-       70469,
-       70471,
-       70473,
-       70475,
-       70478,
-       70487,
-       70488,
-       70493,
-       70500,
-       70502,
-       70509,
-       70512,
-       70517,
-       70784,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71114,
-       71168,
-       71237,
-       71248,
-       71258,
-       71296,
-       71352,
-       71360,
-       71370,
-       71840,
-       71923,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       74864,
-       74869,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92782,
-       92784,
-       92880,
-       92910,
-       92912,
-       92918,
-       92928,
-       92998,
-       93008,
-       93018,
-       93019,
-       93026,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94095,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113820,
-       113828,
-       118784,
-       119030,
-       119040,
-       119079,
-       119081,
-       119262,
-       119296,
-       119366,
-       119552,
-       119639,
-       119648,
-       119666,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       125127,
-       125143,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       126704,
-       126706,
-       126976,
-       127020,
-       127024,
-       127124,
-       127136,
-       127151,
-       127153,
-       127168,
-       127169,
-       127184,
-       127185,
-       127222,
-       127232,
-       127245,
-       127248,
-       127279,
-       127280,
-       127340,
-       127344,
-       127387,
-       127462,
-       127491,
-       127504,
-       127547,
-       127552,
-       127561,
-       127568,
-       127570,
-       127744,
-       127789,
-       127792,
-       127870,
-       127872,
-       127951,
-       127956,
-       127992,
-       128000,
-       128255,
-       128256,
-       128331,
-       128336,
-       128378,
-       128379,
-       128420,
-       128421,
-       128579,
-       128581,
-       128720,
-       128736,
-       128749,
-       128752,
-       128756,
-       128768,
-       128884,
-       128896,
-       128981,
-       129024,
-       129036,
-       129040,
-       129096,
-       129104,
-       129114,
-       129120,
-       129160,
-       129168,
-       129198,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102,
-       917505,
-       917506,
-       917536,
-       917632,
-       917760,
-       918000,
-       983040,
-       1048574,
-       1048576,
-       1114110
+       0x0,
+       0x40,
+       0xFF,
+       0x100,
+       0x378,
+       0x37A,
+       0x380,
+       0x384,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x560,
+       0x561,
+       0x588,
+       0x589,
+       0x58B,
+       0x58D,
+       0x590,
+       0x591,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F5,
+       0x600,
+       0x61D,
+       0x61E,
+       0x70E,
+       0x70F,
+       0x74B,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7FB,
+       0x800,
+       0x82E,
+       0x830,
+       0x83F,
+       0x840,
+       0x85C,
+       0x85E,
+       0x85F,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9FC,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF2,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB78,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBFB,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC78,
+       0xC80,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD76,
+       0xD79,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF5,
+       0xE01,
+       0xE3B,
+       0xE3F,
+       0xE5C,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFBE,
+       0xFCD,
+       0xFCE,
+       0xFDB,
+       0x1000,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x137D,
+       0x1380,
+       0x139A,
+       0x13A0,
+       0x13F5,
+       0x1400,
+       0x169D,
+       0x16A0,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1715,
+       0x1720,
+       0x1737,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x17F0,
+       0x17FA,
+       0x1800,
+       0x180F,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1940,
+       0x1941,
+       0x1944,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DB,
+       0x19DE,
+       0x1A1C,
+       0x1A1E,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA0,
+       0x1AAE,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B4C,
+       0x1B50,
+       0x1B7D,
+       0x1B80,
+       0x1BF4,
+       0x1BFC,
+       0x1C38,
+       0x1C3B,
+       0x1C4A,
+       0x1C4D,
+       0x1C80,
+       0x1CC0,
+       0x1CC8,
+       0x1CD0,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DF6,
+       0x1DFC,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FC5,
+       0x1FC6,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FDD,
+       0x1FF0,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFF,
+       0x2000,
+       0x2028,
+       0x202A,
+       0x2065,
+       0x2066,
+       0x2072,
+       0x2074,
+       0x208F,
+       0x2090,
+       0x209D,
+       0x20A0,
+       0x20BE,
+       0x20D0,
+       0x20F1,
+       0x2100,
+       0x218A,
+       0x2190,
+       0x23FB,
+       0x2400,
+       0x2427,
+       0x2440,
+       0x244B,
+       0x2460,
+       0x2B74,
+       0x2B76,
+       0x2B96,
+       0x2B98,
+       0x2BBA,
+       0x2BBD,
+       0x2BC9,
+       0x2BCA,
+       0x2BD2,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CF4,
+       0x2CF9,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D71,
+       0x2D7F,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E43,
+       0x2E80,
+       0x2E9A,
+       0x2E9B,
+       0x2EF4,
+       0x2F00,
+       0x2FD6,
+       0x2FF0,
+       0x2FFC,
+       0x3000,
+       0x3040,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x3190,
+       0x31BB,
+       0x31C0,
+       0x31E4,
+       0x31F0,
+       0x321F,
+       0x3220,
+       0x32FF,
+       0x3300,
+       0x4DB6,
+       0x4DC0,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA490,
+       0xA4C7,
+       0xA4D0,
+       0xA62C,
+       0xA640,
+       0xA69E,
+       0xA69F,
+       0xA6F8,
+       0xA700,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA82C,
+       0xA830,
+       0xA83A,
+       0xA840,
+       0xA878,
+       0xA880,
+       0xA8C5,
+       0xA8CE,
+       0xA8DA,
+       0xA8E0,
+       0xA8FC,
+       0xA900,
+       0xA954,
+       0xA95F,
+       0xA97D,
+       0xA980,
+       0xA9CE,
+       0xA9CF,
+       0xA9DA,
+       0xA9DE,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA5C,
+       0xAAC3,
+       0xAADB,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xE000,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBC2,
+       0xFBD3,
+       0xFD40,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFE,
+       0xFE00,
+       0xFE1A,
+       0xFE20,
+       0xFE2E,
+       0xFE30,
+       0xFE53,
+       0xFE54,
+       0xFE67,
+       0xFE68,
+       0xFE6C,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFEFF,
+       0xFF00,
+       0xFF01,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0xFFE0,
+       0xFFE7,
+       0xFFE8,
+       0xFFEF,
+       0xFFF9,
+       0xFFFE,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10100,
+       0x10103,
+       0x10107,
+       0x10134,
+       0x10137,
+       0x1018D,
+       0x10190,
+       0x1019C,
+       0x101A0,
+       0x101A1,
+       0x101D0,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102FC,
+       0x10300,
+       0x10324,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x1039F,
+       0x103C4,
+       0x103C8,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x1056F,
+       0x10570,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10857,
+       0x1089F,
+       0x108A7,
+       0x108B0,
+       0x10900,
+       0x1091C,
+       0x1091F,
+       0x1093A,
+       0x1093F,
+       0x10940,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A48,
+       0x10A50,
+       0x10A59,
+       0x10A60,
+       0x10AA0,
+       0x10AC0,
+       0x10AE7,
+       0x10AEB,
+       0x10AF7,
+       0x10B00,
+       0x10B36,
+       0x10B39,
+       0x10B56,
+       0x10B58,
+       0x10B73,
+       0x10B78,
+       0x10B92,
+       0x10B99,
+       0x10B9D,
+       0x10BA9,
+       0x10BB0,
+       0x10C00,
+       0x10C49,
+       0x10E60,
+       0x10E7F,
+       0x11000,
+       0x1104E,
+       0x11052,
+       0x11070,
+       0x1107F,
+       0x110C2,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11135,
+       0x11136,
+       0x11144,
+       0x11150,
+       0x11177,
+       0x11180,
+       0x111C9,
+       0x111CD,
+       0x111CE,
+       0x111D0,
+       0x111DB,
+       0x111E1,
+       0x111F5,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1123E,
+       0x112B0,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115CA,
+       0x11600,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118F3,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x12470,
+       0x12475,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16A6E,
+       0x16A70,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF6,
+       0x16B00,
+       0x16B46,
+       0x16B50,
+       0x16B5A,
+       0x16B5B,
+       0x16B62,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F8F,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9C,
+       0x1BCA4,
+       0x1D000,
+       0x1D0F6,
+       0x1D100,
+       0x1D127,
+       0x1D129,
+       0x1D1DE,
+       0x1D200,
+       0x1D246,
+       0x1D300,
+       0x1D357,
+       0x1D360,
+       0x1D372,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8C7,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1EEF0,
+       0x1EEF2,
+       0x1F000,
+       0x1F02C,
+       0x1F030,
+       0x1F094,
+       0x1F0A0,
+       0x1F0AF,
+       0x1F0B1,
+       0x1F0C0,
+       0x1F0C1,
+       0x1F0D0,
+       0x1F0D1,
+       0x1F0F6,
+       0x1F100,
+       0x1F10D,
+       0x1F110,
+       0x1F12F,
+       0x1F130,
+       0x1F16C,
+       0x1F170,
+       0x1F19B,
+       0x1F1E6,
+       0x1F203,
+       0x1F210,
+       0x1F23B,
+       0x1F240,
+       0x1F249,
+       0x1F250,
+       0x1F252,
+       0x1F300,
+       0x1F32D,
+       0x1F330,
+       0x1F37E,
+       0x1F380,
+       0x1F3CF,
+       0x1F3D4,
+       0x1F3F8,
+       0x1F400,
+       0x1F4FF,
+       0x1F500,
+       0x1F54B,
+       0x1F550,
+       0x1F57A,
+       0x1F57B,
+       0x1F5A4,
+       0x1F5A5,
+       0x1F643,
+       0x1F645,
+       0x1F6D0,
+       0x1F6E0,
+       0x1F6ED,
+       0x1F6F0,
+       0x1F6F4,
+       0x1F700,
+       0x1F774,
+       0x1F780,
+       0x1F7D5,
+       0x1F800,
+       0x1F80C,
+       0x1F810,
+       0x1F848,
+       0x1F850,
+       0x1F85A,
+       0x1F860,
+       0x1F888,
+       0x1F890,
+       0x1F8AE,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0001,
+       0xE0002,
+       0xE0020,
+       0xE0080,
+       0xE0100,
+       0xE01F0,
+       0xF0000,
+       0xFFFFE,
+       0x100000,
+       0x10FFFE
 };
 
 static const UV XPosixPunct_invlist[] = { /* for EBCDIC 037 */
@@ -31692,317 +69918,317 @@ static const UV XPosixPunct_invlist[] = { /* for EBCDIC 037 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       75,
-       81,
-       90,
-       95,
-       96,
-       98,
-       107,
-       112,
-       121,
-       128,
-       138,
-       140,
-       161,
-       162,
-       170,
-       172,
-       176,
-       177,
-       179,
-       180,
-       181,
-       183,
-       186,
-       188,
-       192,
-       193,
-       208,
-       209,
-       224,
-       225,
-       894,
-       895,
-       903,
-       904,
-       1370,
-       1376,
-       1417,
-       1419,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1523,
-       1525,
-       1545,
-       1547,
-       1548,
-       1550,
-       1563,
-       1564,
-       1566,
-       1568,
-       1642,
-       1646,
-       1748,
-       1749,
-       1792,
-       1806,
-       2039,
-       2042,
-       2096,
-       2111,
-       2142,
-       2143,
-       2404,
-       2406,
-       2416,
-       2417,
-       2800,
-       2801,
-       3572,
-       3573,
-       3663,
-       3664,
-       3674,
-       3676,
-       3844,
-       3859,
-       3860,
-       3861,
-       3898,
-       3902,
-       3973,
-       3974,
-       4048,
-       4053,
-       4057,
-       4059,
-       4170,
-       4176,
-       4347,
-       4348,
-       4960,
-       4969,
-       5120,
-       5121,
-       5741,
-       5743,
-       5787,
-       5789,
-       5867,
-       5870,
-       5941,
-       5943,
-       6100,
-       6103,
-       6104,
-       6107,
-       6144,
-       6155,
-       6468,
-       6470,
-       6686,
-       6688,
-       6816,
-       6823,
-       6824,
-       6830,
-       7002,
-       7009,
-       7164,
-       7168,
-       7227,
-       7232,
-       7294,
-       7296,
-       7360,
-       7368,
-       7379,
-       7380,
-       8208,
-       8232,
-       8240,
-       8260,
-       8261,
-       8274,
-       8275,
-       8287,
-       8317,
-       8319,
-       8333,
-       8335,
-       8968,
-       8972,
-       9001,
-       9003,
-       10088,
-       10102,
-       10181,
-       10183,
-       10214,
-       10224,
-       10627,
-       10649,
-       10712,
-       10716,
-       10748,
-       10750,
-       11513,
-       11517,
-       11518,
-       11520,
-       11632,
-       11633,
-       11776,
-       11823,
-       11824,
-       11843,
-       12289,
-       12292,
-       12296,
-       12306,
-       12308,
-       12320,
-       12336,
-       12337,
-       12349,
-       12350,
-       12448,
-       12449,
-       12539,
-       12540,
-       42238,
-       42240,
-       42509,
-       42512,
-       42611,
-       42612,
-       42622,
-       42623,
-       42738,
-       42744,
-       43124,
-       43128,
-       43214,
-       43216,
-       43256,
-       43259,
-       43310,
-       43312,
-       43359,
-       43360,
-       43457,
-       43470,
-       43486,
-       43488,
-       43612,
-       43616,
-       43742,
-       43744,
-       43760,
-       43762,
-       44011,
-       44012,
-       64830,
-       64832,
-       65040,
-       65050,
-       65072,
-       65107,
-       65108,
-       65122,
-       65123,
-       65124,
-       65128,
-       65129,
-       65130,
-       65132,
-       65281,
-       65284,
-       65285,
-       65291,
-       65292,
-       65296,
-       65306,
-       65308,
-       65311,
-       65313,
-       65339,
-       65342,
-       65343,
-       65344,
-       65371,
-       65372,
-       65373,
-       65374,
-       65375,
-       65382,
-       65792,
-       65795,
-       66463,
-       66464,
-       66512,
-       66513,
-       66927,
-       66928,
-       67671,
-       67672,
-       67871,
-       67872,
-       67903,
-       67904,
-       68176,
-       68185,
-       68223,
-       68224,
-       68336,
-       68343,
-       68409,
-       68416,
-       68505,
-       68509,
-       69703,
-       69710,
-       69819,
-       69821,
-       69822,
-       69826,
-       69952,
-       69956,
-       70004,
-       70006,
-       70085,
-       70089,
-       70093,
-       70094,
-       70200,
-       70206,
-       70854,
-       70855,
-       71105,
-       71114,
-       71233,
-       71236,
-       74864,
-       74869,
-       92782,
-       92784,
-       92917,
-       92918,
-       92983,
-       92988,
-       92996,
-       92997,
-       113823,
-       113824
+       0x0,
+       0x4B,
+       0x51,
+       0x5A,
+       0x5F,
+       0x60,
+       0x62,
+       0x6B,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xB0,
+       0xB1,
+       0xB3,
+       0xB4,
+       0xB5,
+       0xB7,
+       0xBA,
+       0xBC,
+       0xC0,
+       0xC1,
+       0xD0,
+       0xD1,
+       0xE0,
+       0xE1,
+       0x37E,
+       0x37F,
+       0x387,
+       0x388,
+       0x55A,
+       0x560,
+       0x589,
+       0x58B,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5F3,
+       0x5F5,
+       0x609,
+       0x60B,
+       0x60C,
+       0x60E,
+       0x61B,
+       0x61C,
+       0x61E,
+       0x620,
+       0x66A,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x700,
+       0x70E,
+       0x7F7,
+       0x7FA,
+       0x830,
+       0x83F,
+       0x85E,
+       0x85F,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0xAF0,
+       0xAF1,
+       0xDF4,
+       0xDF5,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xE5C,
+       0xF04,
+       0xF13,
+       0xF14,
+       0xF15,
+       0xF3A,
+       0xF3E,
+       0xF85,
+       0xF86,
+       0xFD0,
+       0xFD5,
+       0xFD9,
+       0xFDB,
+       0x104A,
+       0x1050,
+       0x10FB,
+       0x10FC,
+       0x1360,
+       0x1369,
+       0x1400,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x169B,
+       0x169D,
+       0x16EB,
+       0x16EE,
+       0x1735,
+       0x1737,
+       0x17D4,
+       0x17D7,
+       0x17D8,
+       0x17DB,
+       0x1800,
+       0x180B,
+       0x1944,
+       0x1946,
+       0x1A1E,
+       0x1A20,
+       0x1AA0,
+       0x1AA7,
+       0x1AA8,
+       0x1AAE,
+       0x1B5A,
+       0x1B61,
+       0x1BFC,
+       0x1C00,
+       0x1C3B,
+       0x1C40,
+       0x1C7E,
+       0x1C80,
+       0x1CC0,
+       0x1CC8,
+       0x1CD3,
+       0x1CD4,
+       0x2010,
+       0x2028,
+       0x2030,
+       0x2044,
+       0x2045,
+       0x2052,
+       0x2053,
+       0x205F,
+       0x207D,
+       0x207F,
+       0x208D,
+       0x208F,
+       0x2308,
+       0x230C,
+       0x2329,
+       0x232B,
+       0x2768,
+       0x2776,
+       0x27C5,
+       0x27C7,
+       0x27E6,
+       0x27F0,
+       0x2983,
+       0x2999,
+       0x29D8,
+       0x29DC,
+       0x29FC,
+       0x29FE,
+       0x2CF9,
+       0x2CFD,
+       0x2CFE,
+       0x2D00,
+       0x2D70,
+       0x2D71,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x2E43,
+       0x3001,
+       0x3004,
+       0x3008,
+       0x3012,
+       0x3014,
+       0x3020,
+       0x3030,
+       0x3031,
+       0x303D,
+       0x303E,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA6F2,
+       0xA6F8,
+       0xA874,
+       0xA878,
+       0xA8CE,
+       0xA8D0,
+       0xA8F8,
+       0xA8FB,
+       0xA92E,
+       0xA930,
+       0xA95F,
+       0xA960,
+       0xA9C1,
+       0xA9CE,
+       0xA9DE,
+       0xA9E0,
+       0xAA5C,
+       0xAA60,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xABEB,
+       0xABEC,
+       0xFD3E,
+       0xFD40,
+       0xFE10,
+       0xFE1A,
+       0xFE30,
+       0xFE53,
+       0xFE54,
+       0xFE62,
+       0xFE63,
+       0xFE64,
+       0xFE68,
+       0xFE69,
+       0xFE6A,
+       0xFE6C,
+       0xFF01,
+       0xFF04,
+       0xFF05,
+       0xFF0B,
+       0xFF0C,
+       0xFF10,
+       0xFF1A,
+       0xFF1C,
+       0xFF1F,
+       0xFF21,
+       0xFF3B,
+       0xFF3E,
+       0xFF3F,
+       0xFF40,
+       0xFF5B,
+       0xFF5C,
+       0xFF5D,
+       0xFF5E,
+       0xFF5F,
+       0xFF66,
+       0x10100,
+       0x10103,
+       0x1039F,
+       0x103A0,
+       0x103D0,
+       0x103D1,
+       0x1056F,
+       0x10570,
+       0x10857,
+       0x10858,
+       0x1091F,
+       0x10920,
+       0x1093F,
+       0x10940,
+       0x10A50,
+       0x10A59,
+       0x10A7F,
+       0x10A80,
+       0x10AF0,
+       0x10AF7,
+       0x10B39,
+       0x10B40,
+       0x10B99,
+       0x10B9D,
+       0x11047,
+       0x1104E,
+       0x110BB,
+       0x110BD,
+       0x110BE,
+       0x110C2,
+       0x11140,
+       0x11144,
+       0x11174,
+       0x11176,
+       0x111C5,
+       0x111C9,
+       0x111CD,
+       0x111CE,
+       0x11238,
+       0x1123E,
+       0x114C6,
+       0x114C7,
+       0x115C1,
+       0x115CA,
+       0x11641,
+       0x11644,
+       0x12470,
+       0x12475,
+       0x16A6E,
+       0x16A70,
+       0x16AF5,
+       0x16AF6,
+       0x16B37,
+       0x16B3C,
+       0x16B44,
+       0x16B45,
+       0x1BC9F,
+       0x1BCA0
 };
 
 static const UV XPosixSpace_invlist[] = { /* for EBCDIC 037 */
@@ -32010,29 +70236,29 @@ static const UV XPosixSpace_invlist[] = { /* for EBCDIC 037 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       5,
-       6,
-       11,
-       14,
-       21,
-       22,
-       37,
-       38,
-       64,
-       66,
-       5760,
-       5761,
-       8192,
-       8203,
-       8232,
-       8234,
-       8239,
-       8240,
-       8287,
-       8288,
-       12288,
-       12289
+       0x0,
+       0x5,
+       0x6,
+       0xB,
+       0xE,
+       0x15,
+       0x16,
+       0x25,
+       0x26,
+       0x40,
+       0x42,
+       0x1680,
+       0x1681,
+       0x2000,
+       0x200B,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x2030,
+       0x205F,
+       0x2060,
+       0x3000,
+       0x3001
 };
 
 static const UV XPosixUpper_invlist[] = { /* for EBCDIC 037 */
@@ -32040,1275 +70266,1275 @@ static const UV XPosixUpper_invlist[] = { /* for EBCDIC 037 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       98,
-       106,
-       113,
-       121,
-       128,
-       129,
-       158,
-       159,
-       172,
-       175,
-       193,
-       202,
-       209,
-       218,
-       226,
-       234,
-       235,
-       240,
-       251,
-       255,
-       256,
-       257,
-       258,
-       259,
-       260,
-       261,
-       262,
-       263,
-       264,
-       265,
-       266,
-       267,
-       268,
-       269,
-       270,
-       271,
-       272,
-       273,
-       274,
-       275,
-       276,
-       277,
-       278,
-       279,
-       280,
-       281,
-       282,
-       283,
-       284,
-       285,
-       286,
-       287,
-       288,
-       289,
-       290,
-       291,
-       292,
-       293,
-       294,
-       295,
-       296,
-       297,
-       298,
-       299,
-       300,
-       301,
-       302,
-       303,
-       304,
-       305,
-       306,
-       307,
-       308,
-       309,
-       310,
-       311,
-       313,
-       314,
-       315,
-       316,
-       317,
-       318,
-       319,
-       320,
-       321,
-       322,
-       323,
-       324,
-       325,
-       326,
-       327,
-       328,
-       330,
-       331,
-       332,
-       333,
-       334,
-       335,
-       336,
-       337,
-       338,
-       339,
-       340,
-       341,
-       342,
-       343,
-       344,
-       345,
-       346,
-       347,
-       348,
-       349,
-       350,
-       351,
-       352,
-       353,
-       354,
-       355,
-       356,
-       357,
-       358,
-       359,
-       360,
-       361,
-       362,
-       363,
-       364,
-       365,
-       366,
-       367,
-       368,
-       369,
-       370,
-       371,
-       372,
-       373,
-       374,
-       375,
-       376,
-       378,
-       379,
-       380,
-       381,
-       382,
-       385,
-       387,
-       388,
-       389,
-       390,
-       392,
-       393,
-       396,
-       398,
-       402,
-       403,
-       405,
-       406,
-       409,
-       412,
-       414,
-       415,
-       417,
-       418,
-       419,
-       420,
-       421,
-       422,
-       424,
-       425,
-       426,
-       428,
-       429,
-       430,
-       432,
-       433,
-       436,
-       437,
-       438,
-       439,
-       441,
-       444,
-       445,
-       452,
-       453,
-       455,
-       456,
-       458,
-       459,
-       461,
-       462,
-       463,
-       464,
-       465,
-       466,
-       467,
-       468,
-       469,
-       470,
-       471,
-       472,
-       473,
-       474,
-       475,
-       476,
-       478,
-       479,
-       480,
-       481,
-       482,
-       483,
-       484,
-       485,
-       486,
-       487,
-       488,
-       489,
-       490,
-       491,
-       492,
-       493,
-       494,
-       495,
-       497,
-       498,
-       500,
-       501,
-       502,
-       505,
-       506,
-       507,
-       508,
-       509,
-       510,
-       511,
-       512,
-       513,
-       514,
-       515,
-       516,
-       517,
-       518,
-       519,
-       520,
-       521,
-       522,
-       523,
-       524,
-       525,
-       526,
-       527,
-       528,
-       529,
-       530,
-       531,
-       532,
-       533,
-       534,
-       535,
-       536,
-       537,
-       538,
-       539,
-       540,
-       541,
-       542,
-       543,
-       544,
-       545,
-       546,
-       547,
-       548,
-       549,
-       550,
-       551,
-       552,
-       553,
-       554,
-       555,
-       556,
-       557,
-       558,
-       559,
-       560,
-       561,
-       562,
-       563,
-       570,
-       572,
-       573,
-       575,
-       577,
-       578,
-       579,
-       583,
-       584,
-       585,
-       586,
-       587,
-       588,
-       589,
-       590,
-       591,
-       880,
-       881,
-       882,
-       883,
-       886,
-       887,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       912,
-       913,
-       930,
-       931,
-       940,
-       975,
-       976,
-       978,
-       981,
-       984,
-       985,
-       986,
-       987,
-       988,
-       989,
-       990,
-       991,
-       992,
-       993,
-       994,
-       995,
-       996,
-       997,
-       998,
-       999,
-       1000,
-       1001,
-       1002,
-       1003,
-       1004,
-       1005,
-       1006,
-       1007,
-       1012,
-       1013,
-       1015,
-       1016,
-       1017,
-       1019,
-       1021,
-       1072,
-       1120,
-       1121,
-       1122,
-       1123,
-       1124,
-       1125,
-       1126,
-       1127,
-       1128,
-       1129,
-       1130,
-       1131,
-       1132,
-       1133,
-       1134,
-       1135,
-       1136,
-       1137,
-       1138,
-       1139,
-       1140,
-       1141,
-       1142,
-       1143,
-       1144,
-       1145,
-       1146,
-       1147,
-       1148,
-       1149,
-       1150,
-       1151,
-       1152,
-       1153,
-       1162,
-       1163,
-       1164,
-       1165,
-       1166,
-       1167,
-       1168,
-       1169,
-       1170,
-       1171,
-       1172,
-       1173,
-       1174,
-       1175,
-       1176,
-       1177,
-       1178,
-       1179,
-       1180,
-       1181,
-       1182,
-       1183,
-       1184,
-       1185,
-       1186,
-       1187,
-       1188,
-       1189,
-       1190,
-       1191,
-       1192,
-       1193,
-       1194,
-       1195,
-       1196,
-       1197,
-       1198,
-       1199,
-       1200,
-       1201,
-       1202,
-       1203,
-       1204,
-       1205,
-       1206,
-       1207,
-       1208,
-       1209,
-       1210,
-       1211,
-       1212,
-       1213,
-       1214,
-       1215,
-       1216,
-       1218,
-       1219,
-       1220,
-       1221,
-       1222,
-       1223,
-       1224,
-       1225,
-       1226,
-       1227,
-       1228,
-       1229,
-       1230,
-       1232,
-       1233,
-       1234,
-       1235,
-       1236,
-       1237,
-       1238,
-       1239,
-       1240,
-       1241,
-       1242,
-       1243,
-       1244,
-       1245,
-       1246,
-       1247,
-       1248,
-       1249,
-       1250,
-       1251,
-       1252,
-       1253,
-       1254,
-       1255,
-       1256,
-       1257,
-       1258,
-       1259,
-       1260,
-       1261,
-       1262,
-       1263,
-       1264,
-       1265,
-       1266,
-       1267,
-       1268,
-       1269,
-       1270,
-       1271,
-       1272,
-       1273,
-       1274,
-       1275,
-       1276,
-       1277,
-       1278,
-       1279,
-       1280,
-       1281,
-       1282,
-       1283,
-       1284,
-       1285,
-       1286,
-       1287,
-       1288,
-       1289,
-       1290,
-       1291,
-       1292,
-       1293,
-       1294,
-       1295,
-       1296,
-       1297,
-       1298,
-       1299,
-       1300,
-       1301,
-       1302,
-       1303,
-       1304,
-       1305,
-       1306,
-       1307,
-       1308,
-       1309,
-       1310,
-       1311,
-       1312,
-       1313,
-       1314,
-       1315,
-       1316,
-       1317,
-       1318,
-       1319,
-       1320,
-       1321,
-       1322,
-       1323,
-       1324,
-       1325,
-       1326,
-       1327,
-       1329,
-       1367,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       7680,
-       7681,
-       7682,
-       7683,
-       7684,
-       7685,
-       7686,
-       7687,
-       7688,
-       7689,
-       7690,
-       7691,
-       7692,
-       7693,
-       7694,
-       7695,
-       7696,
-       7697,
-       7698,
-       7699,
-       7700,
-       7701,
-       7702,
-       7703,
-       7704,
-       7705,
-       7706,
-       7707,
-       7708,
-       7709,
-       7710,
-       7711,
-       7712,
-       7713,
-       7714,
-       7715,
-       7716,
-       7717,
-       7718,
-       7719,
-       7720,
-       7721,
-       7722,
-       7723,
-       7724,
-       7725,
-       7726,
-       7727,
-       7728,
-       7729,
-       7730,
-       7731,
-       7732,
-       7733,
-       7734,
-       7735,
-       7736,
-       7737,
-       7738,
-       7739,
-       7740,
-       7741,
-       7742,
-       7743,
-       7744,
-       7745,
-       7746,
-       7747,
-       7748,
-       7749,
-       7750,
-       7751,
-       7752,
-       7753,
-       7754,
-       7755,
-       7756,
-       7757,
-       7758,
-       7759,
-       7760,
-       7761,
-       7762,
-       7763,
-       7764,
-       7765,
-       7766,
-       7767,
-       7768,
-       7769,
-       7770,
-       7771,
-       7772,
-       7773,
-       7774,
-       7775,
-       7776,
-       7777,
-       7778,
-       7779,
-       7780,
-       7781,
-       7782,
-       7783,
-       7784,
-       7785,
-       7786,
-       7787,
-       7788,
-       7789,
-       7790,
-       7791,
-       7792,
-       7793,
-       7794,
-       7795,
-       7796,
-       7797,
-       7798,
-       7799,
-       7800,
-       7801,
-       7802,
-       7803,
-       7804,
-       7805,
-       7806,
-       7807,
-       7808,
-       7809,
-       7810,
-       7811,
-       7812,
-       7813,
-       7814,
-       7815,
-       7816,
-       7817,
-       7818,
-       7819,
-       7820,
-       7821,
-       7822,
-       7823,
-       7824,
-       7825,
-       7826,
-       7827,
-       7828,
-       7829,
-       7838,
-       7839,
-       7840,
-       7841,
-       7842,
-       7843,
-       7844,
-       7845,
-       7846,
-       7847,
-       7848,
-       7849,
-       7850,
-       7851,
-       7852,
-       7853,
-       7854,
-       7855,
-       7856,
-       7857,
-       7858,
-       7859,
-       7860,
-       7861,
-       7862,
-       7863,
-       7864,
-       7865,
-       7866,
-       7867,
-       7868,
-       7869,
-       7870,
-       7871,
-       7872,
-       7873,
-       7874,
-       7875,
-       7876,
-       7877,
-       7878,
-       7879,
-       7880,
-       7881,
-       7882,
-       7883,
-       7884,
-       7885,
-       7886,
-       7887,
-       7888,
-       7889,
-       7890,
-       7891,
-       7892,
-       7893,
-       7894,
-       7895,
-       7896,
-       7897,
-       7898,
-       7899,
-       7900,
-       7901,
-       7902,
-       7903,
-       7904,
-       7905,
-       7906,
-       7907,
-       7908,
-       7909,
-       7910,
-       7911,
-       7912,
-       7913,
-       7914,
-       7915,
-       7916,
-       7917,
-       7918,
-       7919,
-       7920,
-       7921,
-       7922,
-       7923,
-       7924,
-       7925,
-       7926,
-       7927,
-       7928,
-       7929,
-       7930,
-       7931,
-       7932,
-       7933,
-       7934,
-       7935,
-       7944,
-       7952,
-       7960,
-       7966,
-       7976,
-       7984,
-       7992,
-       8000,
-       8008,
-       8014,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8032,
-       8040,
-       8048,
-       8120,
-       8124,
-       8136,
-       8140,
-       8152,
-       8156,
-       8168,
-       8173,
-       8184,
-       8188,
-       8450,
-       8451,
-       8455,
-       8456,
-       8459,
-       8462,
-       8464,
-       8467,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8496,
-       8500,
-       8510,
-       8512,
-       8517,
-       8518,
-       8544,
-       8560,
-       8579,
-       8580,
-       9398,
-       9424,
-       11264,
-       11311,
-       11360,
-       11361,
-       11362,
-       11365,
-       11367,
-       11368,
-       11369,
-       11370,
-       11371,
-       11372,
-       11373,
-       11377,
-       11378,
-       11379,
-       11381,
-       11382,
-       11390,
-       11393,
-       11394,
-       11395,
-       11396,
-       11397,
-       11398,
-       11399,
-       11400,
-       11401,
-       11402,
-       11403,
-       11404,
-       11405,
-       11406,
-       11407,
-       11408,
-       11409,
-       11410,
-       11411,
-       11412,
-       11413,
-       11414,
-       11415,
-       11416,
-       11417,
-       11418,
-       11419,
-       11420,
-       11421,
-       11422,
-       11423,
-       11424,
-       11425,
-       11426,
-       11427,
-       11428,
-       11429,
-       11430,
-       11431,
-       11432,
-       11433,
-       11434,
-       11435,
-       11436,
-       11437,
-       11438,
-       11439,
-       11440,
-       11441,
-       11442,
-       11443,
-       11444,
-       11445,
-       11446,
-       11447,
-       11448,
-       11449,
-       11450,
-       11451,
-       11452,
-       11453,
-       11454,
-       11455,
-       11456,
-       11457,
-       11458,
-       11459,
-       11460,
-       11461,
-       11462,
-       11463,
-       11464,
-       11465,
-       11466,
-       11467,
-       11468,
-       11469,
-       11470,
-       11471,
-       11472,
-       11473,
-       11474,
-       11475,
-       11476,
-       11477,
-       11478,
-       11479,
-       11480,
-       11481,
-       11482,
-       11483,
-       11484,
-       11485,
-       11486,
-       11487,
-       11488,
-       11489,
-       11490,
-       11491,
-       11499,
-       11500,
-       11501,
-       11502,
-       11506,
-       11507,
-       42560,
-       42561,
-       42562,
-       42563,
-       42564,
-       42565,
-       42566,
-       42567,
-       42568,
-       42569,
-       42570,
-       42571,
-       42572,
-       42573,
-       42574,
-       42575,
-       42576,
-       42577,
-       42578,
-       42579,
-       42580,
-       42581,
-       42582,
-       42583,
-       42584,
-       42585,
-       42586,
-       42587,
-       42588,
-       42589,
-       42590,
-       42591,
-       42592,
-       42593,
-       42594,
-       42595,
-       42596,
-       42597,
-       42598,
-       42599,
-       42600,
-       42601,
-       42602,
-       42603,
-       42604,
-       42605,
-       42624,
-       42625,
-       42626,
-       42627,
-       42628,
-       42629,
-       42630,
-       42631,
-       42632,
-       42633,
-       42634,
-       42635,
-       42636,
-       42637,
-       42638,
-       42639,
-       42640,
-       42641,
-       42642,
-       42643,
-       42644,
-       42645,
-       42646,
-       42647,
-       42648,
-       42649,
-       42650,
-       42651,
-       42786,
-       42787,
-       42788,
-       42789,
-       42790,
-       42791,
-       42792,
-       42793,
-       42794,
-       42795,
-       42796,
-       42797,
-       42798,
-       42799,
-       42802,
-       42803,
-       42804,
-       42805,
-       42806,
-       42807,
-       42808,
-       42809,
-       42810,
-       42811,
-       42812,
-       42813,
-       42814,
-       42815,
-       42816,
-       42817,
-       42818,
-       42819,
-       42820,
-       42821,
-       42822,
-       42823,
-       42824,
-       42825,
-       42826,
-       42827,
-       42828,
-       42829,
-       42830,
-       42831,
-       42832,
-       42833,
-       42834,
-       42835,
-       42836,
-       42837,
-       42838,
-       42839,
-       42840,
-       42841,
-       42842,
-       42843,
-       42844,
-       42845,
-       42846,
-       42847,
-       42848,
-       42849,
-       42850,
-       42851,
-       42852,
-       42853,
-       42854,
-       42855,
-       42856,
-       42857,
-       42858,
-       42859,
-       42860,
-       42861,
-       42862,
-       42863,
-       42873,
-       42874,
-       42875,
-       42876,
-       42877,
-       42879,
-       42880,
-       42881,
-       42882,
-       42883,
-       42884,
-       42885,
-       42886,
-       42887,
-       42891,
-       42892,
-       42893,
-       42894,
-       42896,
-       42897,
-       42898,
-       42899,
-       42902,
-       42903,
-       42904,
-       42905,
-       42906,
-       42907,
-       42908,
-       42909,
-       42910,
-       42911,
-       42912,
-       42913,
-       42914,
-       42915,
-       42916,
-       42917,
-       42918,
-       42919,
-       42920,
-       42921,
-       42922,
-       42926,
-       42928,
-       42930,
-       65313,
-       65339,
-       66560,
-       66600,
-       71840,
-       71872,
-       119808,
-       119834,
-       119860,
-       119886,
-       119912,
-       119938,
-       119964,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119990,
-       120016,
-       120042,
-       120068,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120120,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120172,
-       120198,
-       120224,
-       120250,
-       120276,
-       120302,
-       120328,
-       120354,
-       120380,
-       120406,
-       120432,
-       120458,
-       120488,
-       120513,
-       120546,
-       120571,
-       120604,
-       120629,
-       120662,
-       120687,
-       120720,
-       120745,
-       120778,
-       120779,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370
+       0x0,
+       0x62,
+       0x6A,
+       0x71,
+       0x79,
+       0x80,
+       0x81,
+       0x9E,
+       0x9F,
+       0xAC,
+       0xAF,
+       0xC1,
+       0xCA,
+       0xD1,
+       0xDA,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFB,
+       0xFF,
+       0x100,
+       0x101,
+       0x102,
+       0x103,
+       0x104,
+       0x105,
+       0x106,
+       0x107,
+       0x108,
+       0x109,
+       0x10A,
+       0x10B,
+       0x10C,
+       0x10D,
+       0x10E,
+       0x10F,
+       0x110,
+       0x111,
+       0x112,
+       0x113,
+       0x114,
+       0x115,
+       0x116,
+       0x117,
+       0x118,
+       0x119,
+       0x11A,
+       0x11B,
+       0x11C,
+       0x11D,
+       0x11E,
+       0x11F,
+       0x120,
+       0x121,
+       0x122,
+       0x123,
+       0x124,
+       0x125,
+       0x126,
+       0x127,
+       0x128,
+       0x129,
+       0x12A,
+       0x12B,
+       0x12C,
+       0x12D,
+       0x12E,
+       0x12F,
+       0x130,
+       0x131,
+       0x132,
+       0x133,
+       0x134,
+       0x135,
+       0x136,
+       0x137,
+       0x139,
+       0x13A,
+       0x13B,
+       0x13C,
+       0x13D,
+       0x13E,
+       0x13F,
+       0x140,
+       0x141,
+       0x142,
+       0x143,
+       0x144,
+       0x145,
+       0x146,
+       0x147,
+       0x148,
+       0x14A,
+       0x14B,
+       0x14C,
+       0x14D,
+       0x14E,
+       0x14F,
+       0x150,
+       0x151,
+       0x152,
+       0x153,
+       0x154,
+       0x155,
+       0x156,
+       0x157,
+       0x158,
+       0x159,
+       0x15A,
+       0x15B,
+       0x15C,
+       0x15D,
+       0x15E,
+       0x15F,
+       0x160,
+       0x161,
+       0x162,
+       0x163,
+       0x164,
+       0x165,
+       0x166,
+       0x167,
+       0x168,
+       0x169,
+       0x16A,
+       0x16B,
+       0x16C,
+       0x16D,
+       0x16E,
+       0x16F,
+       0x170,
+       0x171,
+       0x172,
+       0x173,
+       0x174,
+       0x175,
+       0x176,
+       0x177,
+       0x178,
+       0x17A,
+       0x17B,
+       0x17C,
+       0x17D,
+       0x17E,
+       0x181,
+       0x183,
+       0x184,
+       0x185,
+       0x186,
+       0x188,
+       0x189,
+       0x18C,
+       0x18E,
+       0x192,
+       0x193,
+       0x195,
+       0x196,
+       0x199,
+       0x19C,
+       0x19E,
+       0x19F,
+       0x1A1,
+       0x1A2,
+       0x1A3,
+       0x1A4,
+       0x1A5,
+       0x1A6,
+       0x1A8,
+       0x1A9,
+       0x1AA,
+       0x1AC,
+       0x1AD,
+       0x1AE,
+       0x1B0,
+       0x1B1,
+       0x1B4,
+       0x1B5,
+       0x1B6,
+       0x1B7,
+       0x1B9,
+       0x1BC,
+       0x1BD,
+       0x1C4,
+       0x1C5,
+       0x1C7,
+       0x1C8,
+       0x1CA,
+       0x1CB,
+       0x1CD,
+       0x1CE,
+       0x1CF,
+       0x1D0,
+       0x1D1,
+       0x1D2,
+       0x1D3,
+       0x1D4,
+       0x1D5,
+       0x1D6,
+       0x1D7,
+       0x1D8,
+       0x1D9,
+       0x1DA,
+       0x1DB,
+       0x1DC,
+       0x1DE,
+       0x1DF,
+       0x1E0,
+       0x1E1,
+       0x1E2,
+       0x1E3,
+       0x1E4,
+       0x1E5,
+       0x1E6,
+       0x1E7,
+       0x1E8,
+       0x1E9,
+       0x1EA,
+       0x1EB,
+       0x1EC,
+       0x1ED,
+       0x1EE,
+       0x1EF,
+       0x1F1,
+       0x1F2,
+       0x1F4,
+       0x1F5,
+       0x1F6,
+       0x1F9,
+       0x1FA,
+       0x1FB,
+       0x1FC,
+       0x1FD,
+       0x1FE,
+       0x1FF,
+       0x200,
+       0x201,
+       0x202,
+       0x203,
+       0x204,
+       0x205,
+       0x206,
+       0x207,
+       0x208,
+       0x209,
+       0x20A,
+       0x20B,
+       0x20C,
+       0x20D,
+       0x20E,
+       0x20F,
+       0x210,
+       0x211,
+       0x212,
+       0x213,
+       0x214,
+       0x215,
+       0x216,
+       0x217,
+       0x218,
+       0x219,
+       0x21A,
+       0x21B,
+       0x21C,
+       0x21D,
+       0x21E,
+       0x21F,
+       0x220,
+       0x221,
+       0x222,
+       0x223,
+       0x224,
+       0x225,
+       0x226,
+       0x227,
+       0x228,
+       0x229,
+       0x22A,
+       0x22B,
+       0x22C,
+       0x22D,
+       0x22E,
+       0x22F,
+       0x230,
+       0x231,
+       0x232,
+       0x233,
+       0x23A,
+       0x23C,
+       0x23D,
+       0x23F,
+       0x241,
+       0x242,
+       0x243,
+       0x247,
+       0x248,
+       0x249,
+       0x24A,
+       0x24B,
+       0x24C,
+       0x24D,
+       0x24E,
+       0x24F,
+       0x370,
+       0x371,
+       0x372,
+       0x373,
+       0x376,
+       0x377,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x390,
+       0x391,
+       0x3A2,
+       0x3A3,
+       0x3AC,
+       0x3CF,
+       0x3D0,
+       0x3D2,
+       0x3D5,
+       0x3D8,
+       0x3D9,
+       0x3DA,
+       0x3DB,
+       0x3DC,
+       0x3DD,
+       0x3DE,
+       0x3DF,
+       0x3E0,
+       0x3E1,
+       0x3E2,
+       0x3E3,
+       0x3E4,
+       0x3E5,
+       0x3E6,
+       0x3E7,
+       0x3E8,
+       0x3E9,
+       0x3EA,
+       0x3EB,
+       0x3EC,
+       0x3ED,
+       0x3EE,
+       0x3EF,
+       0x3F4,
+       0x3F5,
+       0x3F7,
+       0x3F8,
+       0x3F9,
+       0x3FB,
+       0x3FD,
+       0x430,
+       0x460,
+       0x461,
+       0x462,
+       0x463,
+       0x464,
+       0x465,
+       0x466,
+       0x467,
+       0x468,
+       0x469,
+       0x46A,
+       0x46B,
+       0x46C,
+       0x46D,
+       0x46E,
+       0x46F,
+       0x470,
+       0x471,
+       0x472,
+       0x473,
+       0x474,
+       0x475,
+       0x476,
+       0x477,
+       0x478,
+       0x479,
+       0x47A,
+       0x47B,
+       0x47C,
+       0x47D,
+       0x47E,
+       0x47F,
+       0x480,
+       0x481,
+       0x48A,
+       0x48B,
+       0x48C,
+       0x48D,
+       0x48E,
+       0x48F,
+       0x490,
+       0x491,
+       0x492,
+       0x493,
+       0x494,
+       0x495,
+       0x496,
+       0x497,
+       0x498,
+       0x499,
+       0x49A,
+       0x49B,
+       0x49C,
+       0x49D,
+       0x49E,
+       0x49F,
+       0x4A0,
+       0x4A1,
+       0x4A2,
+       0x4A3,
+       0x4A4,
+       0x4A5,
+       0x4A6,
+       0x4A7,
+       0x4A8,
+       0x4A9,
+       0x4AA,
+       0x4AB,
+       0x4AC,
+       0x4AD,
+       0x4AE,
+       0x4AF,
+       0x4B0,
+       0x4B1,
+       0x4B2,
+       0x4B3,
+       0x4B4,
+       0x4B5,
+       0x4B6,
+       0x4B7,
+       0x4B8,
+       0x4B9,
+       0x4BA,
+       0x4BB,
+       0x4BC,
+       0x4BD,
+       0x4BE,
+       0x4BF,
+       0x4C0,
+       0x4C2,
+       0x4C3,
+       0x4C4,
+       0x4C5,
+       0x4C6,
+       0x4C7,
+       0x4C8,
+       0x4C9,
+       0x4CA,
+       0x4CB,
+       0x4CC,
+       0x4CD,
+       0x4CE,
+       0x4D0,
+       0x4D1,
+       0x4D2,
+       0x4D3,
+       0x4D4,
+       0x4D5,
+       0x4D6,
+       0x4D7,
+       0x4D8,
+       0x4D9,
+       0x4DA,
+       0x4DB,
+       0x4DC,
+       0x4DD,
+       0x4DE,
+       0x4DF,
+       0x4E0,
+       0x4E1,
+       0x4E2,
+       0x4E3,
+       0x4E4,
+       0x4E5,
+       0x4E6,
+       0x4E7,
+       0x4E8,
+       0x4E9,
+       0x4EA,
+       0x4EB,
+       0x4EC,
+       0x4ED,
+       0x4EE,
+       0x4EF,
+       0x4F0,
+       0x4F1,
+       0x4F2,
+       0x4F3,
+       0x4F4,
+       0x4F5,
+       0x4F6,
+       0x4F7,
+       0x4F8,
+       0x4F9,
+       0x4FA,
+       0x4FB,
+       0x4FC,
+       0x4FD,
+       0x4FE,
+       0x4FF,
+       0x500,
+       0x501,
+       0x502,
+       0x503,
+       0x504,
+       0x505,
+       0x506,
+       0x507,
+       0x508,
+       0x509,
+       0x50A,
+       0x50B,
+       0x50C,
+       0x50D,
+       0x50E,
+       0x50F,
+       0x510,
+       0x511,
+       0x512,
+       0x513,
+       0x514,
+       0x515,
+       0x516,
+       0x517,
+       0x518,
+       0x519,
+       0x51A,
+       0x51B,
+       0x51C,
+       0x51D,
+       0x51E,
+       0x51F,
+       0x520,
+       0x521,
+       0x522,
+       0x523,
+       0x524,
+       0x525,
+       0x526,
+       0x527,
+       0x528,
+       0x529,
+       0x52A,
+       0x52B,
+       0x52C,
+       0x52D,
+       0x52E,
+       0x52F,
+       0x531,
+       0x557,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x1E00,
+       0x1E01,
+       0x1E02,
+       0x1E03,
+       0x1E04,
+       0x1E05,
+       0x1E06,
+       0x1E07,
+       0x1E08,
+       0x1E09,
+       0x1E0A,
+       0x1E0B,
+       0x1E0C,
+       0x1E0D,
+       0x1E0E,
+       0x1E0F,
+       0x1E10,
+       0x1E11,
+       0x1E12,
+       0x1E13,
+       0x1E14,
+       0x1E15,
+       0x1E16,
+       0x1E17,
+       0x1E18,
+       0x1E19,
+       0x1E1A,
+       0x1E1B,
+       0x1E1C,
+       0x1E1D,
+       0x1E1E,
+       0x1E1F,
+       0x1E20,
+       0x1E21,
+       0x1E22,
+       0x1E23,
+       0x1E24,
+       0x1E25,
+       0x1E26,
+       0x1E27,
+       0x1E28,
+       0x1E29,
+       0x1E2A,
+       0x1E2B,
+       0x1E2C,
+       0x1E2D,
+       0x1E2E,
+       0x1E2F,
+       0x1E30,
+       0x1E31,
+       0x1E32,
+       0x1E33,
+       0x1E34,
+       0x1E35,
+       0x1E36,
+       0x1E37,
+       0x1E38,
+       0x1E39,
+       0x1E3A,
+       0x1E3B,
+       0x1E3C,
+       0x1E3D,
+       0x1E3E,
+       0x1E3F,
+       0x1E40,
+       0x1E41,
+       0x1E42,
+       0x1E43,
+       0x1E44,
+       0x1E45,
+       0x1E46,
+       0x1E47,
+       0x1E48,
+       0x1E49,
+       0x1E4A,
+       0x1E4B,
+       0x1E4C,
+       0x1E4D,
+       0x1E4E,
+       0x1E4F,
+       0x1E50,
+       0x1E51,
+       0x1E52,
+       0x1E53,
+       0x1E54,
+       0x1E55,
+       0x1E56,
+       0x1E57,
+       0x1E58,
+       0x1E59,
+       0x1E5A,
+       0x1E5B,
+       0x1E5C,
+       0x1E5D,
+       0x1E5E,
+       0x1E5F,
+       0x1E60,
+       0x1E61,
+       0x1E62,
+       0x1E63,
+       0x1E64,
+       0x1E65,
+       0x1E66,
+       0x1E67,
+       0x1E68,
+       0x1E69,
+       0x1E6A,
+       0x1E6B,
+       0x1E6C,
+       0x1E6D,
+       0x1E6E,
+       0x1E6F,
+       0x1E70,
+       0x1E71,
+       0x1E72,
+       0x1E73,
+       0x1E74,
+       0x1E75,
+       0x1E76,
+       0x1E77,
+       0x1E78,
+       0x1E79,
+       0x1E7A,
+       0x1E7B,
+       0x1E7C,
+       0x1E7D,
+       0x1E7E,
+       0x1E7F,
+       0x1E80,
+       0x1E81,
+       0x1E82,
+       0x1E83,
+       0x1E84,
+       0x1E85,
+       0x1E86,
+       0x1E87,
+       0x1E88,
+       0x1E89,
+       0x1E8A,
+       0x1E8B,
+       0x1E8C,
+       0x1E8D,
+       0x1E8E,
+       0x1E8F,
+       0x1E90,
+       0x1E91,
+       0x1E92,
+       0x1E93,
+       0x1E94,
+       0x1E95,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1EA1,
+       0x1EA2,
+       0x1EA3,
+       0x1EA4,
+       0x1EA5,
+       0x1EA6,
+       0x1EA7,
+       0x1EA8,
+       0x1EA9,
+       0x1EAA,
+       0x1EAB,
+       0x1EAC,
+       0x1EAD,
+       0x1EAE,
+       0x1EAF,
+       0x1EB0,
+       0x1EB1,
+       0x1EB2,
+       0x1EB3,
+       0x1EB4,
+       0x1EB5,
+       0x1EB6,
+       0x1EB7,
+       0x1EB8,
+       0x1EB9,
+       0x1EBA,
+       0x1EBB,
+       0x1EBC,
+       0x1EBD,
+       0x1EBE,
+       0x1EBF,
+       0x1EC0,
+       0x1EC1,
+       0x1EC2,
+       0x1EC3,
+       0x1EC4,
+       0x1EC5,
+       0x1EC6,
+       0x1EC7,
+       0x1EC8,
+       0x1EC9,
+       0x1ECA,
+       0x1ECB,
+       0x1ECC,
+       0x1ECD,
+       0x1ECE,
+       0x1ECF,
+       0x1ED0,
+       0x1ED1,
+       0x1ED2,
+       0x1ED3,
+       0x1ED4,
+       0x1ED5,
+       0x1ED6,
+       0x1ED7,
+       0x1ED8,
+       0x1ED9,
+       0x1EDA,
+       0x1EDB,
+       0x1EDC,
+       0x1EDD,
+       0x1EDE,
+       0x1EDF,
+       0x1EE0,
+       0x1EE1,
+       0x1EE2,
+       0x1EE3,
+       0x1EE4,
+       0x1EE5,
+       0x1EE6,
+       0x1EE7,
+       0x1EE8,
+       0x1EE9,
+       0x1EEA,
+       0x1EEB,
+       0x1EEC,
+       0x1EED,
+       0x1EEE,
+       0x1EEF,
+       0x1EF0,
+       0x1EF1,
+       0x1EF2,
+       0x1EF3,
+       0x1EF4,
+       0x1EF5,
+       0x1EF6,
+       0x1EF7,
+       0x1EF8,
+       0x1EF9,
+       0x1EFA,
+       0x1EFB,
+       0x1EFC,
+       0x1EFD,
+       0x1EFE,
+       0x1EFF,
+       0x1F08,
+       0x1F10,
+       0x1F18,
+       0x1F1E,
+       0x1F28,
+       0x1F30,
+       0x1F38,
+       0x1F40,
+       0x1F48,
+       0x1F4E,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1FB8,
+       0x1FBC,
+       0x1FC8,
+       0x1FCC,
+       0x1FD8,
+       0x1FDC,
+       0x1FE8,
+       0x1FED,
+       0x1FF8,
+       0x1FFC,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210B,
+       0x210E,
+       0x2110,
+       0x2113,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x2130,
+       0x2134,
+       0x213E,
+       0x2140,
+       0x2145,
+       0x2146,
+       0x2160,
+       0x2170,
+       0x2183,
+       0x2184,
+       0x24B6,
+       0x24D0,
+       0x2C00,
+       0x2C2F,
+       0x2C60,
+       0x2C61,
+       0x2C62,
+       0x2C65,
+       0x2C67,
+       0x2C68,
+       0x2C69,
+       0x2C6A,
+       0x2C6B,
+       0x2C6C,
+       0x2C6D,
+       0x2C71,
+       0x2C72,
+       0x2C73,
+       0x2C75,
+       0x2C76,
+       0x2C7E,
+       0x2C81,
+       0x2C82,
+       0x2C83,
+       0x2C84,
+       0x2C85,
+       0x2C86,
+       0x2C87,
+       0x2C88,
+       0x2C89,
+       0x2C8A,
+       0x2C8B,
+       0x2C8C,
+       0x2C8D,
+       0x2C8E,
+       0x2C8F,
+       0x2C90,
+       0x2C91,
+       0x2C92,
+       0x2C93,
+       0x2C94,
+       0x2C95,
+       0x2C96,
+       0x2C97,
+       0x2C98,
+       0x2C99,
+       0x2C9A,
+       0x2C9B,
+       0x2C9C,
+       0x2C9D,
+       0x2C9E,
+       0x2C9F,
+       0x2CA0,
+       0x2CA1,
+       0x2CA2,
+       0x2CA3,
+       0x2CA4,
+       0x2CA5,
+       0x2CA6,
+       0x2CA7,
+       0x2CA8,
+       0x2CA9,
+       0x2CAA,
+       0x2CAB,
+       0x2CAC,
+       0x2CAD,
+       0x2CAE,
+       0x2CAF,
+       0x2CB0,
+       0x2CB1,
+       0x2CB2,
+       0x2CB3,
+       0x2CB4,
+       0x2CB5,
+       0x2CB6,
+       0x2CB7,
+       0x2CB8,
+       0x2CB9,
+       0x2CBA,
+       0x2CBB,
+       0x2CBC,
+       0x2CBD,
+       0x2CBE,
+       0x2CBF,
+       0x2CC0,
+       0x2CC1,
+       0x2CC2,
+       0x2CC3,
+       0x2CC4,
+       0x2CC5,
+       0x2CC6,
+       0x2CC7,
+       0x2CC8,
+       0x2CC9,
+       0x2CCA,
+       0x2CCB,
+       0x2CCC,
+       0x2CCD,
+       0x2CCE,
+       0x2CCF,
+       0x2CD0,
+       0x2CD1,
+       0x2CD2,
+       0x2CD3,
+       0x2CD4,
+       0x2CD5,
+       0x2CD6,
+       0x2CD7,
+       0x2CD8,
+       0x2CD9,
+       0x2CDA,
+       0x2CDB,
+       0x2CDC,
+       0x2CDD,
+       0x2CDE,
+       0x2CDF,
+       0x2CE0,
+       0x2CE1,
+       0x2CE2,
+       0x2CE3,
+       0x2CEB,
+       0x2CEC,
+       0x2CED,
+       0x2CEE,
+       0x2CF2,
+       0x2CF3,
+       0xA640,
+       0xA641,
+       0xA642,
+       0xA643,
+       0xA644,
+       0xA645,
+       0xA646,
+       0xA647,
+       0xA648,
+       0xA649,
+       0xA64A,
+       0xA64B,
+       0xA64C,
+       0xA64D,
+       0xA64E,
+       0xA64F,
+       0xA650,
+       0xA651,
+       0xA652,
+       0xA653,
+       0xA654,
+       0xA655,
+       0xA656,
+       0xA657,
+       0xA658,
+       0xA659,
+       0xA65A,
+       0xA65B,
+       0xA65C,
+       0xA65D,
+       0xA65E,
+       0xA65F,
+       0xA660,
+       0xA661,
+       0xA662,
+       0xA663,
+       0xA664,
+       0xA665,
+       0xA666,
+       0xA667,
+       0xA668,
+       0xA669,
+       0xA66A,
+       0xA66B,
+       0xA66C,
+       0xA66D,
+       0xA680,
+       0xA681,
+       0xA682,
+       0xA683,
+       0xA684,
+       0xA685,
+       0xA686,
+       0xA687,
+       0xA688,
+       0xA689,
+       0xA68A,
+       0xA68B,
+       0xA68C,
+       0xA68D,
+       0xA68E,
+       0xA68F,
+       0xA690,
+       0xA691,
+       0xA692,
+       0xA693,
+       0xA694,
+       0xA695,
+       0xA696,
+       0xA697,
+       0xA698,
+       0xA699,
+       0xA69A,
+       0xA69B,
+       0xA722,
+       0xA723,
+       0xA724,
+       0xA725,
+       0xA726,
+       0xA727,
+       0xA728,
+       0xA729,
+       0xA72A,
+       0xA72B,
+       0xA72C,
+       0xA72D,
+       0xA72E,
+       0xA72F,
+       0xA732,
+       0xA733,
+       0xA734,
+       0xA735,
+       0xA736,
+       0xA737,
+       0xA738,
+       0xA739,
+       0xA73A,
+       0xA73B,
+       0xA73C,
+       0xA73D,
+       0xA73E,
+       0xA73F,
+       0xA740,
+       0xA741,
+       0xA742,
+       0xA743,
+       0xA744,
+       0xA745,
+       0xA746,
+       0xA747,
+       0xA748,
+       0xA749,
+       0xA74A,
+       0xA74B,
+       0xA74C,
+       0xA74D,
+       0xA74E,
+       0xA74F,
+       0xA750,
+       0xA751,
+       0xA752,
+       0xA753,
+       0xA754,
+       0xA755,
+       0xA756,
+       0xA757,
+       0xA758,
+       0xA759,
+       0xA75A,
+       0xA75B,
+       0xA75C,
+       0xA75D,
+       0xA75E,
+       0xA75F,
+       0xA760,
+       0xA761,
+       0xA762,
+       0xA763,
+       0xA764,
+       0xA765,
+       0xA766,
+       0xA767,
+       0xA768,
+       0xA769,
+       0xA76A,
+       0xA76B,
+       0xA76C,
+       0xA76D,
+       0xA76E,
+       0xA76F,
+       0xA779,
+       0xA77A,
+       0xA77B,
+       0xA77C,
+       0xA77D,
+       0xA77F,
+       0xA780,
+       0xA781,
+       0xA782,
+       0xA783,
+       0xA784,
+       0xA785,
+       0xA786,
+       0xA787,
+       0xA78B,
+       0xA78C,
+       0xA78D,
+       0xA78E,
+       0xA790,
+       0xA791,
+       0xA792,
+       0xA793,
+       0xA796,
+       0xA797,
+       0xA798,
+       0xA799,
+       0xA79A,
+       0xA79B,
+       0xA79C,
+       0xA79D,
+       0xA79E,
+       0xA79F,
+       0xA7A0,
+       0xA7A1,
+       0xA7A2,
+       0xA7A3,
+       0xA7A4,
+       0xA7A5,
+       0xA7A6,
+       0xA7A7,
+       0xA7A8,
+       0xA7A9,
+       0xA7AA,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xFF21,
+       0xFF3B,
+       0x10400,
+       0x10428,
+       0x118A0,
+       0x118C0,
+       0x1D400,
+       0x1D41A,
+       0x1D434,
+       0x1D44E,
+       0x1D468,
+       0x1D482,
+       0x1D49C,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4B6,
+       0x1D4D0,
+       0x1D4EA,
+       0x1D504,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D538,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D56C,
+       0x1D586,
+       0x1D5A0,
+       0x1D5BA,
+       0x1D5D4,
+       0x1D5EE,
+       0x1D608,
+       0x1D622,
+       0x1D63C,
+       0x1D656,
+       0x1D670,
+       0x1D68A,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6E2,
+       0x1D6FB,
+       0x1D71C,
+       0x1D735,
+       0x1D756,
+       0x1D76F,
+       0x1D790,
+       0x1D7A9,
+       0x1D7CA,
+       0x1D7CB,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A
 };
 
 static const UV XPosixWord_invlist[] = { /* for EBCDIC 037 */
@@ -33316,1287 +71542,1287 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 037 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       109,
-       110,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       175,
-       193,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       224,
-       226,
-       234,
-       235,
-       250,
-       251,
-       255,
-       256,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       768,
-       885,
-       886,
-       888,
-       890,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1155,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1425,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1480,
-       1488,
-       1515,
-       1520,
-       1523,
-       1552,
-       1563,
-       1568,
-       1642,
-       1646,
-       1748,
-       1749,
-       1757,
-       1759,
-       1769,
-       1770,
-       1789,
-       1791,
-       1792,
-       1808,
-       1867,
-       1869,
-       1970,
-       1984,
-       2038,
-       2042,
-       2043,
-       2048,
-       2094,
-       2112,
-       2140,
-       2208,
-       2227,
-       2276,
-       2404,
-       2406,
-       2416,
-       2417,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2492,
-       2501,
-       2503,
-       2505,
-       2507,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2546,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2620,
-       2621,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2638,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2748,
-       2758,
-       2759,
-       2762,
-       2763,
-       2766,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2800,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2876,
-       2885,
-       2887,
-       2889,
-       2891,
-       2894,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2928,
-       2929,
-       2930,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3022,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3056,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3150,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3260,
-       3269,
-       3270,
-       3273,
-       3274,
-       3278,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3440,
-       3450,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3530,
-       3531,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3572,
-       3585,
-       3643,
-       3648,
-       3663,
-       3664,
-       3674,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3784,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3841,
-       3864,
-       3866,
-       3872,
-       3882,
-       3893,
-       3894,
-       3895,
-       3896,
-       3897,
-       3898,
-       3902,
-       3912,
-       3913,
-       3949,
-       3953,
-       3973,
-       3974,
-       3992,
-       3993,
-       4029,
-       4038,
-       4039,
-       4096,
-       4170,
-       4176,
-       4254,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4957,
-       4960,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5909,
-       5920,
-       5941,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6100,
-       6103,
-       6104,
-       6108,
-       6110,
-       6112,
-       6122,
-       6155,
-       6158,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6460,
-       6470,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6618,
-       6656,
-       6684,
-       6688,
-       6751,
-       6752,
-       6781,
-       6783,
-       6794,
-       6800,
-       6810,
-       6823,
-       6824,
-       6832,
-       6847,
-       6912,
-       6988,
-       6992,
-       7002,
-       7019,
-       7028,
-       7040,
-       7156,
-       7168,
-       7224,
-       7232,
-       7242,
-       7245,
-       7294,
-       7376,
-       7379,
-       7380,
-       7415,
-       7416,
-       7418,
-       7424,
-       7670,
-       7676,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8204,
-       8206,
-       8255,
-       8257,
-       8276,
-       8277,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8400,
-       8433,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11647,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11776,
-       11823,
-       11824,
-       12293,
-       12296,
-       12321,
-       12336,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12441,
-       12443,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42540,
-       42560,
-       42611,
-       42612,
-       42622,
-       42623,
-       42654,
-       42655,
-       42738,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43048,
-       43072,
-       43124,
-       43136,
-       43205,
-       43216,
-       43226,
-       43232,
-       43256,
-       43259,
-       43260,
-       43264,
-       43310,
-       43312,
-       43348,
-       43360,
-       43389,
-       43392,
-       43457,
-       43471,
-       43482,
-       43488,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43616,
-       43639,
-       43642,
-       43715,
-       43739,
-       43742,
-       43744,
-       43760,
-       43762,
-       43767,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44011,
-       44012,
-       44014,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65020,
-       65024,
-       65040,
-       65056,
-       65070,
-       65075,
-       65077,
-       65101,
-       65104,
-       65136,
-       65141,
-       65142,
-       65277,
-       65296,
-       65306,
-       65313,
-       65339,
-       65343,
-       65344,
-       65345,
-       65371,
-       65382,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66045,
-       66046,
-       66176,
-       66205,
-       66208,
-       66257,
-       66272,
-       66273,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68152,
-       68155,
-       68159,
-       68160,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68327,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69632,
-       69703,
-       69734,
-       69744,
-       69759,
-       69819,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69941,
-       69942,
-       69952,
-       69968,
-       70004,
-       70006,
-       70007,
-       70016,
-       70085,
-       70096,
-       70107,
-       70144,
-       70162,
-       70163,
-       70200,
-       70320,
-       70379,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70460,
-       70469,
-       70471,
-       70473,
-       70475,
-       70478,
-       70487,
-       70488,
-       70493,
-       70500,
-       70502,
-       70509,
-       70512,
-       70517,
-       70784,
-       70854,
-       70855,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71105,
-       71168,
-       71233,
-       71236,
-       71237,
-       71248,
-       71258,
-       71296,
-       71352,
-       71360,
-       71370,
-       71840,
-       71914,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92880,
-       92910,
-       92912,
-       92917,
-       92928,
-       92983,
-       92992,
-       92996,
-       93008,
-       93018,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94095,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113821,
-       113823,
-       119141,
-       119146,
-       119149,
-       119155,
-       119163,
-       119171,
-       119173,
-       119180,
-       119210,
-       119214,
-       119362,
-       119365,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       125136,
-       125143,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102,
-       917760,
-       918000
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x6D,
+       0x6E,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xFA,
+       0xFB,
+       0xFF,
+       0x100,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x300,
+       0x375,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x483,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x610,
+       0x61B,
+       0x620,
+       0x66A,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x6DD,
+       0x6DF,
+       0x6E9,
+       0x6EA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x74B,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x82E,
+       0x840,
+       0x85C,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE3B,
+       0xE40,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF18,
+       0xF1A,
+       0xF20,
+       0xF2A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF85,
+       0xF86,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x1000,
+       0x104A,
+       0x1050,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1715,
+       0x1720,
+       0x1735,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17D4,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x180B,
+       0x180E,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1946,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A1C,
+       0x1A20,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA7,
+       0x1AA8,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1BF4,
+       0x1C00,
+       0x1C38,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C7E,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DF6,
+       0x1DFC,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x200C,
+       0x200E,
+       0x203F,
+       0x2041,
+       0x2054,
+       0x2055,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x20D0,
+       0x20F1,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D7F,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x3030,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x309B,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA62C,
+       0xA640,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6F2,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA8C5,
+       0xA8D0,
+       0xA8DA,
+       0xA8E0,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA92E,
+       0xA930,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA9C1,
+       0xA9CF,
+       0xA9DA,
+       0xA9E0,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEB,
+       0xABEC,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE00,
+       0xFE10,
+       0xFE20,
+       0xFE2E,
+       0xFE33,
+       0xFE35,
+       0xFE4D,
+       0xFE50,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFF10,
+       0xFF1A,
+       0xFF21,
+       0xFF3B,
+       0xFF3F,
+       0xFF40,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x101FD,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102E1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE7,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11047,
+       0x11066,
+       0x11070,
+       0x1107F,
+       0x110BB,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11135,
+       0x11136,
+       0x11140,
+       0x11150,
+       0x11174,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x111C5,
+       0x111D0,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x11238,
+       0x112B0,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115C1,
+       0x11600,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF5,
+       0x16B00,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F8F,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9D,
+       0x1BC9F,
+       0x1D165,
+       0x1D16A,
+       0x1D16D,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8D0,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0100,
+       0xE01F0
 };
 
 static const UV XPosixXDigit_invlist[] = { /* for EBCDIC 037 */
@@ -34604,3301 +72830,15133 @@ static const UV XPosixXDigit_invlist[] = { /* for EBCDIC 037 */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       129,
-       135,
-       193,
-       199,
-       240,
-       250,
-       65296,
-       65306,
-       65313,
-       65319,
-       65345,
-       65351
+       0x0,
+       0x81,
+       0x87,
+       0xC1,
+       0xC7,
+       0xF0,
+       0xFA,
+       0xFF10,
+       0xFF1A,
+       0xFF21,
+       0xFF27,
+       0xFF41,
+       0xFF47
 };
 
-static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 037 */
-       263,    /* Number of elements */
+#endif /* defined(PERL_IN_PERL_C) */
+
+#endif /* EBCDIC 037 */
+
+#if 'A' == 193 /* EBCDIC POSIX-BC */ \
+     && '\\' == 188 && '[' == 187 && ']' == 189 && '{' == 251 && '}' == 253 \
+     && '^' == 106 && '~' == 255 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 74
+
+#if defined(PERL_IN_PERL_C)
+
+static const UV ASCII_invlist[] = { /* for EBCDIC POSIX-BC */
+       58,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       0,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x4,
+       0x5,
+       0x6,
+       0x7,
+       0x8,
+       0xB,
+       0x14,
+       0x15,
+       0x17,
+       0x18,
+       0x1A,
+       0x1C,
+       0x20,
+       0x26,
+       0x28,
+       0x2D,
+       0x30,
+       0x32,
+       0x33,
+       0x37,
+       0x38,
+       0x3C,
+       0x3E,
+       0x3F,
+       0x41,
+       0x4A,
+       0x51,
+       0x5A,
+       0x5F,
+       0x60,
+       0x62,
+       0x6A,
+       0x70,
+       0x7A,
+       0x80,
+       0x81,
+       0x8A,
+       0x91,
+       0x9A,
+       0xA2,
+       0xAA,
+       0xBB,
+       0xBE,
+       0xC1,
+       0xCA,
+       0xD1,
+       0xDA,
+       0xE2,
+       0xEA,
+       0xF0,
+       0xFA,
+       0xFB,
+       0xFC,
+       0xFD,
+       0xFE,
+       0xFF,
+       0x100
+};
+
+static const UV Cased_invlist[] = { /* for EBCDIC POSIX-BC */
+       279,    /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       154,
-       156,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       175,
-       193,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       224,
-       226,
-       234,
-       235,
-       240,
-       251,
-       255,
-       256,
-       305,
-       306,
-       312,
-       313,
-       397,
-       398,
-       411,
-       412,
-       426,
-       428,
-       442,
-       444,
-       446,
-       447,
-       448,
-       452,
-       545,
-       546,
-       564,
-       570,
-       597,
-       598,
-       600,
-       601,
-       602,
-       603,
-       605,
-       608,
-       610,
-       611,
-       612,
-       613,
-       615,
-       616,
-       618,
-       619,
-       621,
-       623,
-       624,
-       625,
-       627,
-       629,
-       630,
-       637,
-       638,
-       640,
-       641,
-       643,
-       644,
-       647,
-       653,
-       658,
-       659,
-       670,
-       671,
-       700,
-       701,
-       702,
-       703,
-       768,
-       770,
-       775,
-       777,
-       778,
-       779,
-       780,
-       781,
-       787,
-       788,
-       817,
-       818,
-       834,
-       835,
-       837,
-       838,
-       880,
-       884,
-       886,
-       888,
-       891,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       978,
-       981,
-       1014,
-       1015,
-       1020,
-       1021,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1377,
-       1416,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       7545,
-       7546,
-       7549,
-       7550,
-       7680,
-       7836,
-       7838,
-       7839,
-       7840,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8486,
-       8487,
-       8490,
-       8492,
-       8498,
-       8499,
-       8526,
-       8527,
-       8544,
-       8576,
-       8579,
-       8581,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11377,
-       11378,
-       11380,
-       11381,
-       11383,
-       11390,
-       11492,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       42560,
-       42606,
-       42624,
-       42652,
-       42786,
-       42800,
-       42802,
-       42864,
-       42873,
-       42888,
-       42891,
-       42894,
-       42896,
-       42900,
-       42902,
-       42926,
-       42928,
-       42930,
-       64256,
-       64263,
-       64275,
-       64280,
-       65313,
-       65339,
-       65345,
-       65371,
-       66560,
-       66640,
-       71840,
-       71904
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xC0,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE1,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFC,
+       0xFD,
+       0xFE,
+       0xFF,
+       0x100,
+       0x1BB,
+       0x1BC,
+       0x1C0,
+       0x1C4,
+       0x294,
+       0x295,
+       0x2B9,
+       0x2C0,
+       0x2C2,
+       0x2E0,
+       0x2E5,
+       0x345,
+       0x346,
+       0x370,
+       0x374,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x561,
+       0x588,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x1D00,
+       0x1DC0,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x2135,
+       0x2139,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2180,
+       0x2183,
+       0x2185,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0xA640,
+       0xA66E,
+       0xA680,
+       0xA69E,
+       0xA722,
+       0xA788,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F8,
+       0xA7FB,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0x10400,
+       0x10450,
+       0x118A0,
+       0x118E0,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A
 };
 
-#endif /* #ifndef PERL_IN_XSUB_RE */
+static const UV Grapheme_Cluster_Break_invlist[] = { /* for EBCDIC POSIX-BC */
+       1484,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       0,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0xD,
+       0xE,
+       0x15,
+       0x16,
+       0x40,
+       0x5F,
+       0x60,
+       0xCA,
+       0xCB,
+       0x300,
+       0x370,
+       0x483,
+       0x48A,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x600,
+       0x606,
+       0x610,
+       0x61B,
+       0x61C,
+       0x61D,
+       0x64B,
+       0x660,
+       0x670,
+       0x671,
+       0x6D6,
+       0x6DD,
+       0x6DE,
+       0x6DF,
+       0x6E5,
+       0x6E7,
+       0x6E9,
+       0x6EA,
+       0x6EE,
+       0x70F,
+       0x710,
+       0x711,
+       0x712,
+       0x730,
+       0x74B,
+       0x7A6,
+       0x7B1,
+       0x7EB,
+       0x7F4,
+       0x816,
+       0x81A,
+       0x81B,
+       0x824,
+       0x825,
+       0x828,
+       0x829,
+       0x82E,
+       0x859,
+       0x85C,
+       0x8E4,
+       0x903,
+       0x904,
+       0x93A,
+       0x93B,
+       0x93C,
+       0x93D,
+       0x93E,
+       0x941,
+       0x949,
+       0x94D,
+       0x94E,
+       0x950,
+       0x951,
+       0x958,
+       0x962,
+       0x964,
+       0x981,
+       0x982,
+       0x984,
+       0x9BC,
+       0x9BD,
+       0x9BE,
+       0x9BF,
+       0x9C1,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CD,
+       0x9CE,
+       0x9D7,
+       0x9D8,
+       0x9E2,
+       0x9E4,
+       0xA01,
+       0xA03,
+       0xA04,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA41,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA70,
+       0xA72,
+       0xA75,
+       0xA76,
+       0xA81,
+       0xA83,
+       0xA84,
+       0xABC,
+       0xABD,
+       0xABE,
+       0xAC1,
+       0xAC6,
+       0xAC7,
+       0xAC9,
+       0xACA,
+       0xACB,
+       0xACD,
+       0xACE,
+       0xAE2,
+       0xAE4,
+       0xB01,
+       0xB02,
+       0xB04,
+       0xB3C,
+       0xB3D,
+       0xB3E,
+       0xB40,
+       0xB41,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4D,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB62,
+       0xB64,
+       0xB82,
+       0xB83,
+       0xBBE,
+       0xBBF,
+       0xBC0,
+       0xBC1,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCD,
+       0xBCE,
+       0xBD7,
+       0xBD8,
+       0xC00,
+       0xC01,
+       0xC04,
+       0xC3E,
+       0xC41,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC62,
+       0xC64,
+       0xC81,
+       0xC82,
+       0xC84,
+       0xCBC,
+       0xCBD,
+       0xCBE,
+       0xCBF,
+       0xCC0,
+       0xCC2,
+       0xCC3,
+       0xCC5,
+       0xCC6,
+       0xCC7,
+       0xCC9,
+       0xCCA,
+       0xCCC,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCE2,
+       0xCE4,
+       0xD01,
+       0xD02,
+       0xD04,
+       0xD3E,
+       0xD3F,
+       0xD41,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4D,
+       0xD4E,
+       0xD57,
+       0xD58,
+       0xD62,
+       0xD64,
+       0xD82,
+       0xD84,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD0,
+       0xDD2,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDDF,
+       0xDE0,
+       0xDF2,
+       0xDF4,
+       0xE31,
+       0xE32,
+       0xE33,
+       0xE34,
+       0xE3B,
+       0xE47,
+       0xE4F,
+       0xEB1,
+       0xEB2,
+       0xEB3,
+       0xEB4,
+       0xEBA,
+       0xEBB,
+       0xEBD,
+       0xEC8,
+       0xECE,
+       0xF18,
+       0xF1A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF40,
+       0xF71,
+       0xF7F,
+       0xF80,
+       0xF85,
+       0xF86,
+       0xF88,
+       0xF8D,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x102D,
+       0x1031,
+       0x1032,
+       0x1038,
+       0x1039,
+       0x103B,
+       0x103D,
+       0x103F,
+       0x1056,
+       0x1058,
+       0x105A,
+       0x105E,
+       0x1061,
+       0x1071,
+       0x1075,
+       0x1082,
+       0x1083,
+       0x1084,
+       0x1085,
+       0x1087,
+       0x108D,
+       0x108E,
+       0x109D,
+       0x109E,
+       0x1100,
+       0x1160,
+       0x11A8,
+       0x1200,
+       0x135D,
+       0x1360,
+       0x1712,
+       0x1715,
+       0x1732,
+       0x1735,
+       0x1752,
+       0x1754,
+       0x1772,
+       0x1774,
+       0x17B4,
+       0x17B6,
+       0x17B7,
+       0x17BE,
+       0x17C6,
+       0x17C7,
+       0x17C9,
+       0x17D4,
+       0x17DD,
+       0x17DE,
+       0x180B,
+       0x180E,
+       0x180F,
+       0x18A9,
+       0x18AA,
+       0x1920,
+       0x1923,
+       0x1927,
+       0x1929,
+       0x192C,
+       0x1930,
+       0x1932,
+       0x1933,
+       0x1939,
+       0x193C,
+       0x19B5,
+       0x19B8,
+       0x19BA,
+       0x19BB,
+       0x1A17,
+       0x1A19,
+       0x1A1B,
+       0x1A1C,
+       0x1A55,
+       0x1A56,
+       0x1A57,
+       0x1A58,
+       0x1A5F,
+       0x1A60,
+       0x1A61,
+       0x1A62,
+       0x1A63,
+       0x1A65,
+       0x1A6D,
+       0x1A73,
+       0x1A7D,
+       0x1A7F,
+       0x1A80,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B04,
+       0x1B05,
+       0x1B34,
+       0x1B35,
+       0x1B36,
+       0x1B3B,
+       0x1B3C,
+       0x1B3D,
+       0x1B42,
+       0x1B43,
+       0x1B45,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1B82,
+       0x1B83,
+       0x1BA1,
+       0x1BA2,
+       0x1BA6,
+       0x1BA8,
+       0x1BAA,
+       0x1BAB,
+       0x1BAE,
+       0x1BE6,
+       0x1BE7,
+       0x1BE8,
+       0x1BEA,
+       0x1BED,
+       0x1BEE,
+       0x1BEF,
+       0x1BF2,
+       0x1BF4,
+       0x1C24,
+       0x1C2C,
+       0x1C34,
+       0x1C36,
+       0x1C38,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CE1,
+       0x1CE2,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF2,
+       0x1CF4,
+       0x1CF5,
+       0x1CF8,
+       0x1CFA,
+       0x1DC0,
+       0x1DF6,
+       0x1DFC,
+       0x1E00,
+       0x200B,
+       0x200C,
+       0x200E,
+       0x2010,
+       0x2028,
+       0x202F,
+       0x2060,
+       0x2070,
+       0x20D0,
+       0x20F1,
+       0x2CEF,
+       0x2CF2,
+       0x2D7F,
+       0x2D80,
+       0x2DE0,
+       0x2E00,
+       0x302A,
+       0x3030,
+       0x3099,
+       0x309B,
+       0xA66F,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA69F,
+       0xA6A0,
+       0xA6F0,
+       0xA6F2,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA823,
+       0xA825,
+       0xA827,
+       0xA828,
+       0xA880,
+       0xA882,
+       0xA8B4,
+       0xA8C4,
+       0xA8C5,
+       0xA8E0,
+       0xA8F2,
+       0xA926,
+       0xA92E,
+       0xA947,
+       0xA952,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA983,
+       0xA984,
+       0xA9B3,
+       0xA9B4,
+       0xA9B6,
+       0xA9BA,
+       0xA9BC,
+       0xA9BD,
+       0xA9C1,
+       0xA9E5,
+       0xA9E6,
+       0xAA29,
+       0xAA2F,
+       0xAA31,
+       0xAA33,
+       0xAA35,
+       0xAA37,
+       0xAA43,
+       0xAA44,
+       0xAA4C,
+       0xAA4D,
+       0xAA4E,
+       0xAA7C,
+       0xAA7D,
+       0xAAB0,
+       0xAAB1,
+       0xAAB2,
+       0xAAB5,
+       0xAAB7,
+       0xAAB9,
+       0xAABE,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAEB,
+       0xAAEC,
+       0xAAEE,
+       0xAAF0,
+       0xAAF5,
+       0xAAF6,
+       0xAAF7,
+       0xABE3,
+       0xABE5,
+       0xABE6,
+       0xABE8,
+       0xABE9,
+       0xABEB,
+       0xABEC,
+       0xABED,
+       0xABEE,
+       0xAC00,
+       0xAC01,
+       0xAC1C,
+       0xAC1D,
+       0xAC38,
+       0xAC39,
+       0xAC54,
+       0xAC55,
+       0xAC70,
+       0xAC71,
+       0xAC8C,
+       0xAC8D,
+       0xACA8,
+       0xACA9,
+       0xACC4,
+       0xACC5,
+       0xACE0,
+       0xACE1,
+       0xACFC,
+       0xACFD,
+       0xAD18,
+       0xAD19,
+       0xAD34,
+       0xAD35,
+       0xAD50,
+       0xAD51,
+       0xAD6C,
+       0xAD6D,
+       0xAD88,
+       0xAD89,
+       0xADA4,
+       0xADA5,
+       0xADC0,
+       0xADC1,
+       0xADDC,
+       0xADDD,
+       0xADF8,
+       0xADF9,
+       0xAE14,
+       0xAE15,
+       0xAE30,
+       0xAE31,
+       0xAE4C,
+       0xAE4D,
+       0xAE68,
+       0xAE69,
+       0xAE84,
+       0xAE85,
+       0xAEA0,
+       0xAEA1,
+       0xAEBC,
+       0xAEBD,
+       0xAED8,
+       0xAED9,
+       0xAEF4,
+       0xAEF5,
+       0xAF10,
+       0xAF11,
+       0xAF2C,
+       0xAF2D,
+       0xAF48,
+       0xAF49,
+       0xAF64,
+       0xAF65,
+       0xAF80,
+       0xAF81,
+       0xAF9C,
+       0xAF9D,
+       0xAFB8,
+       0xAFB9,
+       0xAFD4,
+       0xAFD5,
+       0xAFF0,
+       0xAFF1,
+       0xB00C,
+       0xB00D,
+       0xB028,
+       0xB029,
+       0xB044,
+       0xB045,
+       0xB060,
+       0xB061,
+       0xB07C,
+       0xB07D,
+       0xB098,
+       0xB099,
+       0xB0B4,
+       0xB0B5,
+       0xB0D0,
+       0xB0D1,
+       0xB0EC,
+       0xB0ED,
+       0xB108,
+       0xB109,
+       0xB124,
+       0xB125,
+       0xB140,
+       0xB141,
+       0xB15C,
+       0xB15D,
+       0xB178,
+       0xB179,
+       0xB194,
+       0xB195,
+       0xB1B0,
+       0xB1B1,
+       0xB1CC,
+       0xB1CD,
+       0xB1E8,
+       0xB1E9,
+       0xB204,
+       0xB205,
+       0xB220,
+       0xB221,
+       0xB23C,
+       0xB23D,
+       0xB258,
+       0xB259,
+       0xB274,
+       0xB275,
+       0xB290,
+       0xB291,
+       0xB2AC,
+       0xB2AD,
+       0xB2C8,
+       0xB2C9,
+       0xB2E4,
+       0xB2E5,
+       0xB300,
+       0xB301,
+       0xB31C,
+       0xB31D,
+       0xB338,
+       0xB339,
+       0xB354,
+       0xB355,
+       0xB370,
+       0xB371,
+       0xB38C,
+       0xB38D,
+       0xB3A8,
+       0xB3A9,
+       0xB3C4,
+       0xB3C5,
+       0xB3E0,
+       0xB3E1,
+       0xB3FC,
+       0xB3FD,
+       0xB418,
+       0xB419,
+       0xB434,
+       0xB435,
+       0xB450,
+       0xB451,
+       0xB46C,
+       0xB46D,
+       0xB488,
+       0xB489,
+       0xB4A4,
+       0xB4A5,
+       0xB4C0,
+       0xB4C1,
+       0xB4DC,
+       0xB4DD,
+       0xB4F8,
+       0xB4F9,
+       0xB514,
+       0xB515,
+       0xB530,
+       0xB531,
+       0xB54C,
+       0xB54D,
+       0xB568,
+       0xB569,
+       0xB584,
+       0xB585,
+       0xB5A0,
+       0xB5A1,
+       0xB5BC,
+       0xB5BD,
+       0xB5D8,
+       0xB5D9,
+       0xB5F4,
+       0xB5F5,
+       0xB610,
+       0xB611,
+       0xB62C,
+       0xB62D,
+       0xB648,
+       0xB649,
+       0xB664,
+       0xB665,
+       0xB680,
+       0xB681,
+       0xB69C,
+       0xB69D,
+       0xB6B8,
+       0xB6B9,
+       0xB6D4,
+       0xB6D5,
+       0xB6F0,
+       0xB6F1,
+       0xB70C,
+       0xB70D,
+       0xB728,
+       0xB729,
+       0xB744,
+       0xB745,
+       0xB760,
+       0xB761,
+       0xB77C,
+       0xB77D,
+       0xB798,
+       0xB799,
+       0xB7B4,
+       0xB7B5,
+       0xB7D0,
+       0xB7D1,
+       0xB7EC,
+       0xB7ED,
+       0xB808,
+       0xB809,
+       0xB824,
+       0xB825,
+       0xB840,
+       0xB841,
+       0xB85C,
+       0xB85D,
+       0xB878,
+       0xB879,
+       0xB894,
+       0xB895,
+       0xB8B0,
+       0xB8B1,
+       0xB8CC,
+       0xB8CD,
+       0xB8E8,
+       0xB8E9,
+       0xB904,
+       0xB905,
+       0xB920,
+       0xB921,
+       0xB93C,
+       0xB93D,
+       0xB958,
+       0xB959,
+       0xB974,
+       0xB975,
+       0xB990,
+       0xB991,
+       0xB9AC,
+       0xB9AD,
+       0xB9C8,
+       0xB9C9,
+       0xB9E4,
+       0xB9E5,
+       0xBA00,
+       0xBA01,
+       0xBA1C,
+       0xBA1D,
+       0xBA38,
+       0xBA39,
+       0xBA54,
+       0xBA55,
+       0xBA70,
+       0xBA71,
+       0xBA8C,
+       0xBA8D,
+       0xBAA8,
+       0xBAA9,
+       0xBAC4,
+       0xBAC5,
+       0xBAE0,
+       0xBAE1,
+       0xBAFC,
+       0xBAFD,
+       0xBB18,
+       0xBB19,
+       0xBB34,
+       0xBB35,
+       0xBB50,
+       0xBB51,
+       0xBB6C,
+       0xBB6D,
+       0xBB88,
+       0xBB89,
+       0xBBA4,
+       0xBBA5,
+       0xBBC0,
+       0xBBC1,
+       0xBBDC,
+       0xBBDD,
+       0xBBF8,
+       0xBBF9,
+       0xBC14,
+       0xBC15,
+       0xBC30,
+       0xBC31,
+       0xBC4C,
+       0xBC4D,
+       0xBC68,
+       0xBC69,
+       0xBC84,
+       0xBC85,
+       0xBCA0,
+       0xBCA1,
+       0xBCBC,
+       0xBCBD,
+       0xBCD8,
+       0xBCD9,
+       0xBCF4,
+       0xBCF5,
+       0xBD10,
+       0xBD11,
+       0xBD2C,
+       0xBD2D,
+       0xBD48,
+       0xBD49,
+       0xBD64,
+       0xBD65,
+       0xBD80,
+       0xBD81,
+       0xBD9C,
+       0xBD9D,
+       0xBDB8,
+       0xBDB9,
+       0xBDD4,
+       0xBDD5,
+       0xBDF0,
+       0xBDF1,
+       0xBE0C,
+       0xBE0D,
+       0xBE28,
+       0xBE29,
+       0xBE44,
+       0xBE45,
+       0xBE60,
+       0xBE61,
+       0xBE7C,
+       0xBE7D,
+       0xBE98,
+       0xBE99,
+       0xBEB4,
+       0xBEB5,
+       0xBED0,
+       0xBED1,
+       0xBEEC,
+       0xBEED,
+       0xBF08,
+       0xBF09,
+       0xBF24,
+       0xBF25,
+       0xBF40,
+       0xBF41,
+       0xBF5C,
+       0xBF5D,
+       0xBF78,
+       0xBF79,
+       0xBF94,
+       0xBF95,
+       0xBFB0,
+       0xBFB1,
+       0xBFCC,
+       0xBFCD,
+       0xBFE8,
+       0xBFE9,
+       0xC004,
+       0xC005,
+       0xC020,
+       0xC021,
+       0xC03C,
+       0xC03D,
+       0xC058,
+       0xC059,
+       0xC074,
+       0xC075,
+       0xC090,
+       0xC091,
+       0xC0AC,
+       0xC0AD,
+       0xC0C8,
+       0xC0C9,
+       0xC0E4,
+       0xC0E5,
+       0xC100,
+       0xC101,
+       0xC11C,
+       0xC11D,
+       0xC138,
+       0xC139,
+       0xC154,
+       0xC155,
+       0xC170,
+       0xC171,
+       0xC18C,
+       0xC18D,
+       0xC1A8,
+       0xC1A9,
+       0xC1C4,
+       0xC1C5,
+       0xC1E0,
+       0xC1E1,
+       0xC1FC,
+       0xC1FD,
+       0xC218,
+       0xC219,
+       0xC234,
+       0xC235,
+       0xC250,
+       0xC251,
+       0xC26C,
+       0xC26D,
+       0xC288,
+       0xC289,
+       0xC2A4,
+       0xC2A5,
+       0xC2C0,
+       0xC2C1,
+       0xC2DC,
+       0xC2DD,
+       0xC2F8,
+       0xC2F9,
+       0xC314,
+       0xC315,
+       0xC330,
+       0xC331,
+       0xC34C,
+       0xC34D,
+       0xC368,
+       0xC369,
+       0xC384,
+       0xC385,
+       0xC3A0,
+       0xC3A1,
+       0xC3BC,
+       0xC3BD,
+       0xC3D8,
+       0xC3D9,
+       0xC3F4,
+       0xC3F5,
+       0xC410,
+       0xC411,
+       0xC42C,
+       0xC42D,
+       0xC448,
+       0xC449,
+       0xC464,
+       0xC465,
+       0xC480,
+       0xC481,
+       0xC49C,
+       0xC49D,
+       0xC4B8,
+       0xC4B9,
+       0xC4D4,
+       0xC4D5,
+       0xC4F0,
+       0xC4F1,
+       0xC50C,
+       0xC50D,
+       0xC528,
+       0xC529,
+       0xC544,
+       0xC545,
+       0xC560,
+       0xC561,
+       0xC57C,
+       0xC57D,
+       0xC598,
+       0xC599,
+       0xC5B4,
+       0xC5B5,
+       0xC5D0,
+       0xC5D1,
+       0xC5EC,
+       0xC5ED,
+       0xC608,
+       0xC609,
+       0xC624,
+       0xC625,
+       0xC640,
+       0xC641,
+       0xC65C,
+       0xC65D,
+       0xC678,
+       0xC679,
+       0xC694,
+       0xC695,
+       0xC6B0,
+       0xC6B1,
+       0xC6CC,
+       0xC6CD,
+       0xC6E8,
+       0xC6E9,
+       0xC704,
+       0xC705,
+       0xC720,
+       0xC721,
+       0xC73C,
+       0xC73D,
+       0xC758,
+       0xC759,
+       0xC774,
+       0xC775,
+       0xC790,
+       0xC791,
+       0xC7AC,
+       0xC7AD,
+       0xC7C8,
+       0xC7C9,
+       0xC7E4,
+       0xC7E5,
+       0xC800,
+       0xC801,
+       0xC81C,
+       0xC81D,
+       0xC838,
+       0xC839,
+       0xC854,
+       0xC855,
+       0xC870,
+       0xC871,
+       0xC88C,
+       0xC88D,
+       0xC8A8,
+       0xC8A9,
+       0xC8C4,
+       0xC8C5,
+       0xC8E0,
+       0xC8E1,
+       0xC8FC,
+       0xC8FD,
+       0xC918,
+       0xC919,
+       0xC934,
+       0xC935,
+       0xC950,
+       0xC951,
+       0xC96C,
+       0xC96D,
+       0xC988,
+       0xC989,
+       0xC9A4,
+       0xC9A5,
+       0xC9C0,
+       0xC9C1,
+       0xC9DC,
+       0xC9DD,
+       0xC9F8,
+       0xC9F9,
+       0xCA14,
+       0xCA15,
+       0xCA30,
+       0xCA31,
+       0xCA4C,
+       0xCA4D,
+       0xCA68,
+       0xCA69,
+       0xCA84,
+       0xCA85,
+       0xCAA0,
+       0xCAA1,
+       0xCABC,
+       0xCABD,
+       0xCAD8,
+       0xCAD9,
+       0xCAF4,
+       0xCAF5,
+       0xCB10,
+       0xCB11,
+       0xCB2C,
+       0xCB2D,
+       0xCB48,
+       0xCB49,
+       0xCB64,
+       0xCB65,
+       0xCB80,
+       0xCB81,
+       0xCB9C,
+       0xCB9D,
+       0xCBB8,
+       0xCBB9,
+       0xCBD4,
+       0xCBD5,
+       0xCBF0,
+       0xCBF1,
+       0xCC0C,
+       0xCC0D,
+       0xCC28,
+       0xCC29,
+       0xCC44,
+       0xCC45,
+       0xCC60,
+       0xCC61,
+       0xCC7C,
+       0xCC7D,
+       0xCC98,
+       0xCC99,
+       0xCCB4,
+       0xCCB5,
+       0xCCD0,
+       0xCCD1,
+       0xCCEC,
+       0xCCED,
+       0xCD08,
+       0xCD09,
+       0xCD24,
+       0xCD25,
+       0xCD40,
+       0xCD41,
+       0xCD5C,
+       0xCD5D,
+       0xCD78,
+       0xCD79,
+       0xCD94,
+       0xCD95,
+       0xCDB0,
+       0xCDB1,
+       0xCDCC,
+       0xCDCD,
+       0xCDE8,
+       0xCDE9,
+       0xCE04,
+       0xCE05,
+       0xCE20,
+       0xCE21,
+       0xCE3C,
+       0xCE3D,
+       0xCE58,
+       0xCE59,
+       0xCE74,
+       0xCE75,
+       0xCE90,
+       0xCE91,
+       0xCEAC,
+       0xCEAD,
+       0xCEC8,
+       0xCEC9,
+       0xCEE4,
+       0xCEE5,
+       0xCF00,
+       0xCF01,
+       0xCF1C,
+       0xCF1D,
+       0xCF38,
+       0xCF39,
+       0xCF54,
+       0xCF55,
+       0xCF70,
+       0xCF71,
+       0xCF8C,
+       0xCF8D,
+       0xCFA8,
+       0xCFA9,
+       0xCFC4,
+       0xCFC5,
+       0xCFE0,
+       0xCFE1,
+       0xCFFC,
+       0xCFFD,
+       0xD018,
+       0xD019,
+       0xD034,
+       0xD035,
+       0xD050,
+       0xD051,
+       0xD06C,
+       0xD06D,
+       0xD088,
+       0xD089,
+       0xD0A4,
+       0xD0A5,
+       0xD0C0,
+       0xD0C1,
+       0xD0DC,
+       0xD0DD,
+       0xD0F8,
+       0xD0F9,
+       0xD114,
+       0xD115,
+       0xD130,
+       0xD131,
+       0xD14C,
+       0xD14D,
+       0xD168,
+       0xD169,
+       0xD184,
+       0xD185,
+       0xD1A0,
+       0xD1A1,
+       0xD1BC,
+       0xD1BD,
+       0xD1D8,
+       0xD1D9,
+       0xD1F4,
+       0xD1F5,
+       0xD210,
+       0xD211,
+       0xD22C,
+       0xD22D,
+       0xD248,
+       0xD249,
+       0xD264,
+       0xD265,
+       0xD280,
+       0xD281,
+       0xD29C,
+       0xD29D,
+       0xD2B8,
+       0xD2B9,
+       0xD2D4,
+       0xD2D5,
+       0xD2F0,
+       0xD2F1,
+       0xD30C,
+       0xD30D,
+       0xD328,
+       0xD329,
+       0xD344,
+       0xD345,
+       0xD360,
+       0xD361,
+       0xD37C,
+       0xD37D,
+       0xD398,
+       0xD399,
+       0xD3B4,
+       0xD3B5,
+       0xD3D0,
+       0xD3D1,
+       0xD3EC,
+       0xD3ED,
+       0xD408,
+       0xD409,
+       0xD424,
+       0xD425,
+       0xD440,
+       0xD441,
+       0xD45C,
+       0xD45D,
+       0xD478,
+       0xD479,
+       0xD494,
+       0xD495,
+       0xD4B0,
+       0xD4B1,
+       0xD4CC,
+       0xD4CD,
+       0xD4E8,
+       0xD4E9,
+       0xD504,
+       0xD505,
+       0xD520,
+       0xD521,
+       0xD53C,
+       0xD53D,
+       0xD558,
+       0xD559,
+       0xD574,
+       0xD575,
+       0xD590,
+       0xD591,
+       0xD5AC,
+       0xD5AD,
+       0xD5C8,
+       0xD5C9,
+       0xD5E4,
+       0xD5E5,
+       0xD600,
+       0xD601,
+       0xD61C,
+       0xD61D,
+       0xD638,
+       0xD639,
+       0xD654,
+       0xD655,
+       0xD670,
+       0xD671,
+       0xD68C,
+       0xD68D,
+       0xD6A8,
+       0xD6A9,
+       0xD6C4,
+       0xD6C5,
+       0xD6E0,
+       0xD6E1,
+       0xD6FC,
+       0xD6FD,
+       0xD718,
+       0xD719,
+       0xD734,
+       0xD735,
+       0xD750,
+       0xD751,
+       0xD76C,
+       0xD76D,
+       0xD788,
+       0xD789,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xD800,
+       0xE000,
+       0xFB1E,
+       0xFB1F,
+       0xFE00,
+       0xFE10,
+       0xFE20,
+       0xFE2E,
+       0xFEFF,
+       0xFF00,
+       0xFF9E,
+       0xFFA0,
+       0xFFF0,
+       0xFFFC,
+       0x101FD,
+       0x101FE,
+       0x102E0,
+       0x102E1,
+       0x10376,
+       0x1037B,
+       0x10A01,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A10,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10AE5,
+       0x10AE7,
+       0x11000,
+       0x11001,
+       0x11002,
+       0x11003,
+       0x11038,
+       0x11047,
+       0x1107F,
+       0x11082,
+       0x11083,
+       0x110B0,
+       0x110B3,
+       0x110B7,
+       0x110B9,
+       0x110BB,
+       0x110BD,
+       0x110BE,
+       0x11100,
+       0x11103,
+       0x11127,
+       0x1112C,
+       0x1112D,
+       0x11135,
+       0x11173,
+       0x11174,
+       0x11180,
+       0x11182,
+       0x11183,
+       0x111B3,
+       0x111B6,
+       0x111BF,
+       0x111C1,
+       0x1122C,
+       0x1122F,
+       0x11232,
+       0x11234,
+       0x11235,
+       0x11236,
+       0x11238,
+       0x112DF,
+       0x112E0,
+       0x112E3,
+       0x112EB,
+       0x11301,
+       0x11302,
+       0x11304,
+       0x1133C,
+       0x1133D,
+       0x1133E,
+       0x1133F,
+       0x11340,
+       0x11341,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x11362,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x114B0,
+       0x114B1,
+       0x114B3,
+       0x114B9,
+       0x114BA,
+       0x114BB,
+       0x114BD,
+       0x114BE,
+       0x114BF,
+       0x114C1,
+       0x114C2,
+       0x114C4,
+       0x115AF,
+       0x115B0,
+       0x115B2,
+       0x115B6,
+       0x115B8,
+       0x115BC,
+       0x115BE,
+       0x115BF,
+       0x115C1,
+       0x11630,
+       0x11633,
+       0x1163B,
+       0x1163D,
+       0x1163E,
+       0x1163F,
+       0x11641,
+       0x116AB,
+       0x116AC,
+       0x116AD,
+       0x116AE,
+       0x116B0,
+       0x116B6,
+       0x116B7,
+       0x116B8,
+       0x16AF0,
+       0x16AF5,
+       0x16B30,
+       0x16B37,
+       0x16F51,
+       0x16F7F,
+       0x16F8F,
+       0x16F93,
+       0x1BC9D,
+       0x1BC9F,
+       0x1BCA0,
+       0x1BCA4,
+       0x1D165,
+       0x1D166,
+       0x1D167,
+       0x1D16A,
+       0x1D16D,
+       0x1D16E,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1E8D0,
+       0x1E8D7,
+       0x1F1E6,
+       0x1F200,
+       0xE0000,
+       0xE0100,
+       0xE01F0,
+       0xE1000
+};
 
-static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC 037 */
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define PL_GCB_ENUM_COUNT 14
+
+typedef enum {
+       PL_GCB_Other = 0,
+       PL_GCB_CR = 1,
+       PL_GCB_Control = 2,
+       PL_GCB_EDGE = 3,
+       PL_GCB_Extend = 4,
+       PL_GCB_L = 5,
+       PL_GCB_LF = 6,
+       PL_GCB_LV = 7,
+       PL_GCB_LVT = 8,
+       PL_GCB_Prepend = 9,
+       PL_GCB_Regional_Indicator = 10,
+       PL_GCB_SpacingMark = 11,
+       PL_GCB_T = 12,
+       PL_GCB_V = 13
+} PL_GCB_enum;
+
+static const PL_GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for EBCDIC POSIX-BC */
+       PL_GCB_Control,
+       PL_GCB_CR,
+       PL_GCB_Control,
+       PL_GCB_LF,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_L,
+       PL_GCB_V,
+       PL_GCB_T,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_L,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_LV,
+       PL_GCB_LVT,
+       PL_GCB_Other,
+       PL_GCB_V,
+       PL_GCB_Other,
+       PL_GCB_T,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_SpacingMark,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Extend,
+       PL_GCB_Other,
+       PL_GCB_Regional_Indicator,
+       PL_GCB_Other,
+       PL_GCB_Control,
+       PL_GCB_Extend,
+       PL_GCB_Control,
+       PL_GCB_Other
+};
+
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_REGCOMP_C)
+
+static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC POSIX-BC */
        45,     /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       700,
-       701,
-       776,
-       777,
-       787,
-       788,
-       834,
-       835,
-       940,
-       941,
-       942,
-       943,
-       945,
-       946,
-       951,
-       952,
-       953,
-       954,
-       961,
-       962,
-       965,
-       966,
-       969,
-       970,
-       974,
-       975,
-       1381,
-       1382,
-       1396,
-       1397,
-       1406,
-       1407,
-       7936,
-       7944,
-       7968,
-       7976,
-       8032,
-       8040,
-       8048,
-       8049,
-       8052,
-       8053,
-       8060,
-       8061
+       0x0,
+       0x2BC,
+       0x2BD,
+       0x308,
+       0x309,
+       0x313,
+       0x314,
+       0x342,
+       0x343,
+       0x3AC,
+       0x3AD,
+       0x3AE,
+       0x3AF,
+       0x3B1,
+       0x3B2,
+       0x3B7,
+       0x3B8,
+       0x3B9,
+       0x3BA,
+       0x3C1,
+       0x3C2,
+       0x3C5,
+       0x3C6,
+       0x3C9,
+       0x3CA,
+       0x3CE,
+       0x3CF,
+       0x565,
+       0x566,
+       0x574,
+       0x575,
+       0x57E,
+       0x57F,
+       0x1F00,
+       0x1F08,
+       0x1F20,
+       0x1F28,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1F71,
+       0x1F74,
+       0x1F75,
+       0x1F7C,
+       0x1F7D
 };
 
-#ifndef PERL_IN_XSUB_RE
-
-static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC 037 */
-       59,     /* Number of elements */
+static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC POSIX-BC */
+       265,    /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       89,
-       90,
-       304,
-       305,
-       329,
-       330,
-       496,
-       497,
-       912,
-       913,
-       944,
-       945,
-       1415,
-       1416,
-       7830,
-       7835,
-       7838,
-       7839,
-       8016,
-       8017,
-       8018,
-       8019,
-       8020,
-       8021,
-       8022,
-       8023,
-       8064,
-       8112,
-       8114,
-       8117,
-       8118,
-       8120,
-       8124,
-       8125,
-       8130,
-       8133,
-       8134,
-       8136,
-       8140,
-       8141,
-       8146,
-       8148,
-       8150,
-       8152,
-       8162,
-       8165,
-       8166,
-       8168,
-       8178,
-       8181,
-       8182,
-       8184,
-       8188,
-       8189,
-       64256,
-       64263,
-       64275,
-       64280
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9A,
+       0x9C,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xC0,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE1,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFC,
+       0xFD,
+       0xFE,
+       0xFF,
+       0x100,
+       0x131,
+       0x132,
+       0x138,
+       0x139,
+       0x18D,
+       0x18E,
+       0x19B,
+       0x19C,
+       0x1AA,
+       0x1AC,
+       0x1BA,
+       0x1BC,
+       0x1BE,
+       0x1BF,
+       0x1C0,
+       0x1C4,
+       0x221,
+       0x222,
+       0x234,
+       0x23A,
+       0x255,
+       0x256,
+       0x258,
+       0x259,
+       0x25A,
+       0x25B,
+       0x25D,
+       0x260,
+       0x262,
+       0x263,
+       0x264,
+       0x265,
+       0x267,
+       0x268,
+       0x26A,
+       0x26B,
+       0x26D,
+       0x26F,
+       0x270,
+       0x271,
+       0x273,
+       0x275,
+       0x276,
+       0x27D,
+       0x27E,
+       0x280,
+       0x281,
+       0x283,
+       0x284,
+       0x287,
+       0x28D,
+       0x292,
+       0x293,
+       0x29E,
+       0x29F,
+       0x2BC,
+       0x2BD,
+       0x2BE,
+       0x2BF,
+       0x300,
+       0x302,
+       0x307,
+       0x309,
+       0x30A,
+       0x30B,
+       0x30C,
+       0x30D,
+       0x313,
+       0x314,
+       0x331,
+       0x332,
+       0x342,
+       0x343,
+       0x345,
+       0x346,
+       0x370,
+       0x374,
+       0x376,
+       0x378,
+       0x37B,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3D2,
+       0x3D5,
+       0x3F6,
+       0x3F7,
+       0x3FC,
+       0x3FD,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x561,
+       0x588,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x1D79,
+       0x1D7A,
+       0x1D7D,
+       0x1D7E,
+       0x1E00,
+       0x1E9C,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2126,
+       0x2127,
+       0x212A,
+       0x212C,
+       0x2132,
+       0x2133,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2180,
+       0x2183,
+       0x2185,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2C71,
+       0x2C72,
+       0x2C74,
+       0x2C75,
+       0x2C77,
+       0x2C7E,
+       0x2CE4,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0xA640,
+       0xA66E,
+       0xA680,
+       0xA69C,
+       0xA722,
+       0xA730,
+       0xA732,
+       0xA770,
+       0xA779,
+       0xA788,
+       0xA78B,
+       0xA78E,
+       0xA790,
+       0xA794,
+       0xA796,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0x10400,
+       0x10450,
+       0x118A0,
+       0x118E0
 };
 
-static const UV UpperLatin1_invlist[] = { /* for EBCDIC 037 */
-       57,     /* Number of elements */
+static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC POSIX-BC */
+       59,     /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       4,
-       5,
-       6,
-       7,
-       8,
-       11,
-       20,
-       22,
-       23,
-       24,
-       26,
-       28,
-       32,
-       37,
-       40,
-       45,
-       48,
-       50,
-       51,
-       55,
-       56,
-       60,
-       62,
-       63,
-       65,
-       75,
-       81,
-       90,
-       95,
-       96,
-       98,
-       107,
-       112,
-       121,
-       128,
-       129,
-       138,
-       145,
-       154,
-       161,
-       170,
-       176,
-       177,
-       186,
-       188,
-       192,
-       202,
-       208,
-       218,
-       224,
-       225,
-       226,
-       234,
-       240,
-       250,
-       256
+       0x0,
+       0x59,
+       0x5A,
+       0x130,
+       0x131,
+       0x149,
+       0x14A,
+       0x1F0,
+       0x1F1,
+       0x390,
+       0x391,
+       0x3B0,
+       0x3B1,
+       0x587,
+       0x588,
+       0x1E96,
+       0x1E9B,
+       0x1E9E,
+       0x1E9F,
+       0x1F50,
+       0x1F51,
+       0x1F52,
+       0x1F53,
+       0x1F54,
+       0x1F55,
+       0x1F56,
+       0x1F57,
+       0x1F80,
+       0x1FB0,
+       0x1FB2,
+       0x1FB5,
+       0x1FB6,
+       0x1FB8,
+       0x1FBC,
+       0x1FBD,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FC8,
+       0x1FCC,
+       0x1FCD,
+       0x1FD2,
+       0x1FD4,
+       0x1FD6,
+       0x1FD8,
+       0x1FE2,
+       0x1FE5,
+       0x1FE6,
+       0x1FE8,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FF8,
+       0x1FFC,
+       0x1FFD,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18
 };
 
-static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 037 */
-       1117,   /* Number of elements */
+#endif /* defined(PERL_IN_REGCOMP_C) */
+
+#if defined(PERL_IN_UTF8_C)
+
+static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC POSIX-BC */
+       1289,   /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       109,
-       110,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       175,
-       193,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       224,
-       226,
-       234,
-       235,
-       240,
-       251,
-       255,
-       256,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       880,
-       885,
-       886,
-       888,
-       891,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1488,
-       1515,
-       1520,
-       1523,
-       1568,
-       1611,
-       1646,
-       1648,
-       1649,
-       1748,
-       1749,
-       1750,
-       1765,
-       1767,
-       1774,
-       1776,
-       1786,
-       1789,
-       1791,
-       1792,
-       1808,
-       1809,
-       1810,
-       1840,
-       1869,
-       1958,
-       1969,
-       1970,
-       1994,
-       2027,
-       2036,
-       2038,
-       2042,
-       2043,
-       2048,
-       2070,
-       2074,
-       2075,
-       2084,
-       2085,
-       2088,
-       2089,
-       2112,
-       2137,
-       2208,
-       2227,
-       2308,
-       2362,
-       2365,
-       2366,
-       2384,
-       2385,
-       2392,
-       2402,
-       2417,
-       2433,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2493,
-       2494,
-       2510,
-       2511,
-       2524,
-       2526,
-       2527,
-       2530,
-       2544,
-       2546,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2649,
-       2653,
-       2654,
-       2655,
-       2674,
-       2677,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2749,
-       2750,
-       2768,
-       2769,
-       2784,
-       2786,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2877,
-       2878,
-       2908,
-       2910,
-       2911,
-       2914,
-       2929,
-       2930,
-       2947,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3024,
-       3025,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3134,
-       3160,
-       3162,
-       3168,
-       3170,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3261,
-       3262,
-       3294,
-       3295,
-       3296,
-       3298,
-       3313,
-       3315,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3390,
-       3406,
-       3407,
-       3424,
-       3426,
-       3450,
-       3456,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3585,
-       3633,
-       3634,
-       3635,
-       3648,
-       3655,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3761,
-       3762,
-       3763,
-       3773,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3804,
-       3808,
-       3840,
-       3841,
-       3904,
-       3912,
-       3913,
-       3949,
-       3976,
-       3981,
-       4096,
-       4139,
-       4159,
-       4160,
-       4176,
-       4182,
-       4186,
-       4190,
-       4193,
-       4194,
-       4197,
-       4199,
-       4206,
-       4209,
-       4213,
-       4226,
-       4238,
-       4239,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5906,
-       5920,
-       5938,
-       5952,
-       5970,
-       5984,
-       5997,
-       5998,
-       6001,
-       6016,
-       6068,
-       6103,
-       6104,
-       6108,
-       6109,
-       6176,
-       6264,
-       6272,
-       6313,
-       6314,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6480,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6593,
-       6600,
-       6656,
-       6679,
-       6688,
-       6741,
-       6823,
-       6824,
-       6917,
-       6964,
-       6981,
-       6988,
-       7043,
-       7073,
-       7086,
-       7088,
-       7098,
-       7142,
-       7168,
-       7204,
-       7245,
-       7248,
-       7258,
-       7294,
-       7401,
-       7405,
-       7406,
-       7410,
-       7413,
-       7415,
-       7424,
-       7616,
-       7680,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11648,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       12293,
-       12296,
-       12321,
-       12330,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42528,
-       42538,
-       42540,
-       42560,
-       42607,
-       42623,
-       42654,
-       42656,
-       42736,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43010,
-       43011,
-       43014,
-       43015,
-       43019,
-       43020,
-       43043,
-       43072,
-       43124,
-       43138,
-       43188,
-       43250,
-       43256,
-       43259,
-       43260,
-       43274,
-       43302,
-       43312,
-       43335,
-       43360,
-       43389,
-       43396,
-       43443,
-       43471,
-       43472,
-       43488,
-       43493,
-       43494,
-       43504,
-       43514,
-       43519,
-       43520,
-       43561,
-       43584,
-       43587,
-       43588,
-       43596,
-       43616,
-       43639,
-       43642,
-       43643,
-       43646,
-       43696,
-       43697,
-       43698,
-       43701,
-       43703,
-       43705,
-       43710,
-       43712,
-       43713,
-       43714,
-       43715,
-       43739,
-       43742,
-       43744,
-       43755,
-       43762,
-       43765,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44003,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64286,
-       64287,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64606,
-       64612,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65018,
-       65137,
-       65138,
-       65139,
-       65140,
-       65143,
-       65144,
-       65145,
-       65146,
-       65147,
-       65148,
-       65149,
-       65150,
-       65151,
-       65277,
-       65313,
-       65339,
-       65345,
-       65371,
-       65382,
-       65438,
-       65440,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66176,
-       66205,
-       66208,
-       66257,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66422,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68097,
-       68112,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68325,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69635,
-       69688,
-       69763,
-       69808,
-       69840,
-       69865,
-       69891,
-       69927,
-       69968,
-       70003,
-       70006,
-       70007,
-       70019,
-       70067,
-       70081,
-       70085,
-       70106,
-       70107,
-       70144,
-       70162,
-       70163,
-       70188,
-       70320,
-       70367,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70461,
-       70462,
-       70493,
-       70498,
-       70784,
-       70832,
-       70852,
-       70854,
-       70855,
-       70856,
-       71040,
-       71087,
-       71168,
-       71216,
-       71236,
-       71237,
-       71296,
-       71339,
-       71840,
-       71904,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92880,
-       92910,
-       92928,
-       92976,
-       92992,
-       92996,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94033,
-       94099,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       124928,
-       125125,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x6D,
+       0x6E,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xC0,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE1,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xFA,
+       0xFC,
+       0xFD,
+       0xFE,
+       0xFF,
+       0x100,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x300,
+       0x375,
+       0x376,
+       0x378,
+       0x37B,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x483,
+       0x488,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x610,
+       0x61B,
+       0x620,
+       0x66A,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x6DD,
+       0x6DF,
+       0x6E9,
+       0x6EA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x74B,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x82E,
+       0x840,
+       0x85C,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE3B,
+       0xE40,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF18,
+       0xF1A,
+       0xF20,
+       0xF2A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF85,
+       0xF86,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x1000,
+       0x104A,
+       0x1050,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1715,
+       0x1720,
+       0x1735,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17D4,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x180B,
+       0x180E,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1946,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A1C,
+       0x1A20,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA7,
+       0x1AA8,
+       0x1AB0,
+       0x1ABE,
+       0x1B00,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1BF4,
+       0x1C00,
+       0x1C38,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C7E,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DF6,
+       0x1DFC,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x203F,
+       0x2041,
+       0x2054,
+       0x2055,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x20D0,
+       0x20DD,
+       0x20E1,
+       0x20E2,
+       0x20E5,
+       0x20F1,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D7F,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x3030,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x309B,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA62C,
+       0xA640,
+       0xA670,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6F2,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA8C5,
+       0xA8D0,
+       0xA8DA,
+       0xA8E0,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA92E,
+       0xA930,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA9C1,
+       0xA9CF,
+       0xA9DA,
+       0xA9E0,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEB,
+       0xABEC,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFC5E,
+       0xFC64,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFA,
+       0xFE00,
+       0xFE10,
+       0xFE20,
+       0xFE2E,
+       0xFE33,
+       0xFE35,
+       0xFE4D,
+       0xFE50,
+       0xFE71,
+       0xFE72,
+       0xFE73,
+       0xFE74,
+       0xFE77,
+       0xFE78,
+       0xFE79,
+       0xFE7A,
+       0xFE7B,
+       0xFE7C,
+       0xFE7D,
+       0xFE7E,
+       0xFE7F,
+       0xFEFD,
+       0xFF10,
+       0xFF1A,
+       0xFF21,
+       0xFF3B,
+       0xFF3F,
+       0xFF40,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x101FD,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102E1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE7,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11047,
+       0x11066,
+       0x11070,
+       0x1107F,
+       0x110BB,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11135,
+       0x11136,
+       0x11140,
+       0x11150,
+       0x11174,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x111C5,
+       0x111D0,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x11238,
+       0x112B0,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115C1,
+       0x11600,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF5,
+       0x16B00,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F8F,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9D,
+       0x1BC9F,
+       0x1D165,
+       0x1D16A,
+       0x1D16D,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8D0,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0100,
+       0xE01F0
 };
 
-static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
-       1287,   /* Number of elements */
+static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC POSIX-BC */
+       1119,   /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       109,
-       110,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       175,
-       193,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       224,
-       226,
-       234,
-       235,
-       250,
-       251,
-       255,
-       256,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       768,
-       885,
-       886,
-       888,
-       891,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1155,
-       1160,
-       1162,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1425,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1480,
-       1488,
-       1515,
-       1520,
-       1523,
-       1552,
-       1563,
-       1568,
-       1642,
-       1646,
-       1748,
-       1749,
-       1757,
-       1759,
-       1769,
-       1770,
-       1789,
-       1791,
-       1792,
-       1808,
-       1867,
-       1869,
-       1970,
-       1984,
-       2038,
-       2042,
-       2043,
-       2048,
-       2094,
-       2112,
-       2140,
-       2208,
-       2227,
-       2276,
-       2404,
-       2406,
-       2416,
-       2417,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2492,
-       2501,
-       2503,
-       2505,
-       2507,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2546,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2620,
-       2621,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2638,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2748,
-       2758,
-       2759,
-       2762,
-       2763,
-       2766,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2800,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2876,
-       2885,
-       2887,
-       2889,
-       2891,
-       2894,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2928,
-       2929,
-       2930,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3022,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3056,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3150,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3260,
-       3269,
-       3270,
-       3273,
-       3274,
-       3278,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3440,
-       3450,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3530,
-       3531,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3572,
-       3585,
-       3643,
-       3648,
-       3663,
-       3664,
-       3674,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3784,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3841,
-       3864,
-       3866,
-       3872,
-       3882,
-       3893,
-       3894,
-       3895,
-       3896,
-       3897,
-       3898,
-       3902,
-       3912,
-       3913,
-       3949,
-       3953,
-       3973,
-       3974,
-       3992,
-       3993,
-       4029,
-       4038,
-       4039,
-       4096,
-       4170,
-       4176,
-       4254,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4957,
-       4960,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5909,
-       5920,
-       5941,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6100,
-       6103,
-       6104,
-       6108,
-       6110,
-       6112,
-       6122,
-       6155,
-       6158,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6460,
-       6470,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6618,
-       6656,
-       6684,
-       6688,
-       6751,
-       6752,
-       6781,
-       6783,
-       6794,
-       6800,
-       6810,
-       6823,
-       6824,
-       6832,
-       6846,
-       6912,
-       6988,
-       6992,
-       7002,
-       7019,
-       7028,
-       7040,
-       7156,
-       7168,
-       7224,
-       7232,
-       7242,
-       7245,
-       7294,
-       7376,
-       7379,
-       7380,
-       7415,
-       7416,
-       7418,
-       7424,
-       7670,
-       7676,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8255,
-       8257,
-       8276,
-       8277,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8400,
-       8413,
-       8417,
-       8418,
-       8421,
-       8433,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11647,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11776,
-       12293,
-       12296,
-       12321,
-       12336,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12441,
-       12443,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42540,
-       42560,
-       42608,
-       42612,
-       42622,
-       42623,
-       42654,
-       42655,
-       42738,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43048,
-       43072,
-       43124,
-       43136,
-       43205,
-       43216,
-       43226,
-       43232,
-       43256,
-       43259,
-       43260,
-       43264,
-       43310,
-       43312,
-       43348,
-       43360,
-       43389,
-       43392,
-       43457,
-       43471,
-       43482,
-       43488,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43616,
-       43639,
-       43642,
-       43715,
-       43739,
-       43742,
-       43744,
-       43760,
-       43762,
-       43767,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44011,
-       44012,
-       44014,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64606,
-       64612,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65018,
-       65024,
-       65040,
-       65056,
-       65070,
-       65075,
-       65077,
-       65101,
-       65104,
-       65137,
-       65138,
-       65139,
-       65140,
-       65143,
-       65144,
-       65145,
-       65146,
-       65147,
-       65148,
-       65149,
-       65150,
-       65151,
-       65277,
-       65296,
-       65306,
-       65313,
-       65339,
-       65343,
-       65344,
-       65345,
-       65371,
-       65382,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66045,
-       66046,
-       66176,
-       66205,
-       66208,
-       66257,
-       66272,
-       66273,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68152,
-       68155,
-       68159,
-       68160,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68327,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69632,
-       69703,
-       69734,
-       69744,
-       69759,
-       69819,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69941,
-       69942,
-       69952,
-       69968,
-       70004,
-       70006,
-       70007,
-       70016,
-       70085,
-       70096,
-       70107,
-       70144,
-       70162,
-       70163,
-       70200,
-       70320,
-       70379,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70460,
-       70469,
-       70471,
-       70473,
-       70475,
-       70478,
-       70487,
-       70488,
-       70493,
-       70500,
-       70502,
-       70509,
-       70512,
-       70517,
-       70784,
-       70854,
-       70855,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71105,
-       71168,
-       71233,
-       71236,
-       71237,
-       71248,
-       71258,
-       71296,
-       71352,
-       71360,
-       71370,
-       71840,
-       71914,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92880,
-       92910,
-       92912,
-       92917,
-       92928,
-       92983,
-       92992,
-       92996,
-       93008,
-       93018,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94095,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113821,
-       113823,
-       119141,
-       119146,
-       119149,
-       119155,
-       119163,
-       119171,
-       119173,
-       119180,
-       119210,
-       119214,
-       119362,
-       119365,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       125136,
-       125143,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102,
-       917760,
-       918000
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x6D,
+       0x6E,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xC0,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE1,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFC,
+       0xFD,
+       0xFE,
+       0xFF,
+       0x100,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x370,
+       0x375,
+       0x376,
+       0x378,
+       0x37B,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x620,
+       0x64B,
+       0x66E,
+       0x670,
+       0x671,
+       0x6D4,
+       0x6D5,
+       0x6D6,
+       0x6E5,
+       0x6E7,
+       0x6EE,
+       0x6F0,
+       0x6FA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x711,
+       0x712,
+       0x730,
+       0x74D,
+       0x7A6,
+       0x7B1,
+       0x7B2,
+       0x7CA,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x816,
+       0x81A,
+       0x81B,
+       0x824,
+       0x825,
+       0x828,
+       0x829,
+       0x840,
+       0x859,
+       0x8A0,
+       0x8B3,
+       0x904,
+       0x93A,
+       0x93D,
+       0x93E,
+       0x950,
+       0x951,
+       0x958,
+       0x962,
+       0x971,
+       0x981,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BD,
+       0x9BE,
+       0x9CE,
+       0x9CF,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E2,
+       0x9F0,
+       0x9F2,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA72,
+       0xA75,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABD,
+       0xABE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE2,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3D,
+       0xB3E,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB62,
+       0xB71,
+       0xB72,
+       0xB83,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBD0,
+       0xBD1,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC3E,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC62,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBD,
+       0xCBE,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE2,
+       0xCF1,
+       0xCF3,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD3E,
+       0xD4E,
+       0xD4F,
+       0xD60,
+       0xD62,
+       0xD7A,
+       0xD80,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xE01,
+       0xE31,
+       0xE32,
+       0xE33,
+       0xE40,
+       0xE47,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEB1,
+       0xEB2,
+       0xEB3,
+       0xEBD,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF88,
+       0xF8D,
+       0x1000,
+       0x102B,
+       0x103F,
+       0x1040,
+       0x1050,
+       0x1056,
+       0x105A,
+       0x105E,
+       0x1061,
+       0x1062,
+       0x1065,
+       0x1067,
+       0x106E,
+       0x1071,
+       0x1075,
+       0x1082,
+       0x108E,
+       0x108F,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1712,
+       0x1720,
+       0x1732,
+       0x1740,
+       0x1752,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1780,
+       0x17B4,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DD,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18A9,
+       0x18AA,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1950,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19C1,
+       0x19C8,
+       0x1A00,
+       0x1A17,
+       0x1A20,
+       0x1A55,
+       0x1AA7,
+       0x1AA8,
+       0x1B05,
+       0x1B34,
+       0x1B45,
+       0x1B4C,
+       0x1B83,
+       0x1BA1,
+       0x1BAE,
+       0x1BB0,
+       0x1BBA,
+       0x1BE6,
+       0x1C00,
+       0x1C24,
+       0x1C4D,
+       0x1C50,
+       0x1C5A,
+       0x1C7E,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF2,
+       0x1CF5,
+       0x1CF7,
+       0x1D00,
+       0x1DC0,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x302A,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA620,
+       0xA62A,
+       0xA62C,
+       0xA640,
+       0xA66F,
+       0xA67F,
+       0xA69E,
+       0xA6A0,
+       0xA6F0,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA823,
+       0xA840,
+       0xA874,
+       0xA882,
+       0xA8B4,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA90A,
+       0xA926,
+       0xA930,
+       0xA947,
+       0xA960,
+       0xA97D,
+       0xA984,
+       0xA9B3,
+       0xA9CF,
+       0xA9D0,
+       0xA9E0,
+       0xA9E5,
+       0xA9E6,
+       0xA9F0,
+       0xA9FA,
+       0xA9FF,
+       0xAA00,
+       0xAA29,
+       0xAA40,
+       0xAA43,
+       0xAA44,
+       0xAA4C,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAA7B,
+       0xAA7E,
+       0xAAB0,
+       0xAAB1,
+       0xAAB2,
+       0xAAB5,
+       0xAAB7,
+       0xAAB9,
+       0xAABE,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAEB,
+       0xAAF2,
+       0xAAF5,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABE3,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB1E,
+       0xFB1F,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFC5E,
+       0xFC64,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFA,
+       0xFE71,
+       0xFE72,
+       0xFE73,
+       0xFE74,
+       0xFE77,
+       0xFE78,
+       0xFE79,
+       0xFE7A,
+       0xFE7B,
+       0xFE7C,
+       0xFE7D,
+       0xFE7E,
+       0xFE7F,
+       0xFEFD,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFF9E,
+       0xFFA0,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x10376,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A01,
+       0x10A10,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11003,
+       0x11038,
+       0x11083,
+       0x110B0,
+       0x110D0,
+       0x110E9,
+       0x11103,
+       0x11127,
+       0x11150,
+       0x11173,
+       0x11176,
+       0x11177,
+       0x11183,
+       0x111B3,
+       0x111C1,
+       0x111C5,
+       0x111DA,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1122C,
+       0x112B0,
+       0x112DF,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133D,
+       0x1133E,
+       0x1135D,
+       0x11362,
+       0x11480,
+       0x114B0,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x11580,
+       0x115AF,
+       0x11600,
+       0x11630,
+       0x11644,
+       0x11645,
+       0x11680,
+       0x116AB,
+       0x118A0,
+       0x118E0,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16AD0,
+       0x16AEE,
+       0x16B00,
+       0x16B30,
+       0x16B40,
+       0x16B44,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F51,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1E800,
+       0x1E8C5,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E
 };
 
-#endif /* #ifndef PERL_IN_XSUB_RE */
-
-#endif /* EBCDIC 037 */
-
-#if 'A' == 193 /* EBCDIC POSIX-BC */ \
-     && '\\' == 188 && '[' == 187 && ']' == 189 && '{' == 251 && '}' == 253 \
-     && '^' == 106 && '~' == 255 && '!' == 90 && '#' == 123 && '|' == 79 \
-     && '$' == 91 && '@' == 124 && '`' == 74
+#endif /* defined(PERL_IN_UTF8_C) */
 
-#ifndef PERL_IN_XSUB_RE
+#if defined(PERL_IN_PERL_C)
 
-static const UV ASCII_invlist[] = { /* for EBCDIC POSIX-BC */
-       58,     /* Number of elements */
+static const UV Sentence_Break_invlist[] = { /* for EBCDIC POSIX-BC */
+       2863,   /* Number of elements */
        148565664, /* Version and data structure type */
        0,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       4,
-       5,
-       6,
-       7,
-       8,
-       11,
-       20,
-       21,
-       23,
-       24,
-       26,
-       28,
-       32,
-       38,
-       40,
-       45,
-       48,
-       50,
-       51,
-       55,
-       56,
-       60,
-       62,
-       63,
-       65,
-       74,
-       81,
-       90,
-       95,
-       96,
-       98,
-       106,
-       112,
-       122,
-       128,
-       129,
-       138,
-       145,
-       154,
-       162,
-       170,
-       187,
-       190,
-       193,
-       202,
-       209,
-       218,
-       226,
-       234,
-       240,
-       250,
-       251,
-       252,
-       253,
-       254,
-       255,
-       256
+       0x0,
+       0x5,
+       0x6,
+       0xB,
+       0xD,
+       0xE,
+       0x15,
+       0x16,
+       0x25,
+       0x26,
+       0x40,
+       0x42,
+       0x4A,
+       0x4B,
+       0x4C,
+       0x4D,
+       0x4E,
+       0x51,
+       0x5A,
+       0x5B,
+       0x5D,
+       0x5E,
+       0x60,
+       0x61,
+       0x62,
+       0x6A,
+       0x6B,
+       0x6C,
+       0x6F,
+       0x70,
+       0x71,
+       0x79,
+       0x7A,
+       0x7B,
+       0x7D,
+       0x7E,
+       0x7F,
+       0x80,
+       0x81,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xBB,
+       0xBC,
+       0xBD,
+       0xBE,
+       0xC0,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xDD,
+       0xDE,
+       0xE0,
+       0xE1,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFA,
+       0xFB,
+       0xFC,
+       0xFD,
+       0xFE,
+       0xFF,
+       0x100,
+       0x101,
+       0x102,
+       0x103,
+       0x104,
+       0x105,
+       0x106,
+       0x107,
+       0x108,
+       0x109,
+       0x10A,
+       0x10B,
+       0x10C,
+       0x10D,
+       0x10E,
+       0x10F,
+       0x110,
+       0x111,
+       0x112,
+       0x113,
+       0x114,
+       0x115,
+       0x116,
+       0x117,
+       0x118,
+       0x119,
+       0x11A,
+       0x11B,
+       0x11C,
+       0x11D,
+       0x11E,
+       0x11F,
+       0x120,
+       0x121,
+       0x122,
+       0x123,
+       0x124,
+       0x125,
+       0x126,
+       0x127,
+       0x128,
+       0x129,
+       0x12A,
+       0x12B,
+       0x12C,
+       0x12D,
+       0x12E,
+       0x12F,
+       0x130,
+       0x131,
+       0x132,
+       0x133,
+       0x134,
+       0x135,
+       0x136,
+       0x137,
+       0x139,
+       0x13A,
+       0x13B,
+       0x13C,
+       0x13D,
+       0x13E,
+       0x13F,
+       0x140,
+       0x141,
+       0x142,
+       0x143,
+       0x144,
+       0x145,
+       0x146,
+       0x147,
+       0x148,
+       0x14A,
+       0x14B,
+       0x14C,
+       0x14D,
+       0x14E,
+       0x14F,
+       0x150,
+       0x151,
+       0x152,
+       0x153,
+       0x154,
+       0x155,
+       0x156,
+       0x157,
+       0x158,
+       0x159,
+       0x15A,
+       0x15B,
+       0x15C,
+       0x15D,
+       0x15E,
+       0x15F,
+       0x160,
+       0x161,
+       0x162,
+       0x163,
+       0x164,
+       0x165,
+       0x166,
+       0x167,
+       0x168,
+       0x169,
+       0x16A,
+       0x16B,
+       0x16C,
+       0x16D,
+       0x16E,
+       0x16F,
+       0x170,
+       0x171,
+       0x172,
+       0x173,
+       0x174,
+       0x175,
+       0x176,
+       0x177,
+       0x178,
+       0x17A,
+       0x17B,
+       0x17C,
+       0x17D,
+       0x17E,
+       0x181,
+       0x183,
+       0x184,
+       0x185,
+       0x186,
+       0x188,
+       0x189,
+       0x18C,
+       0x18E,
+       0x192,
+       0x193,
+       0x195,
+       0x196,
+       0x199,
+       0x19C,
+       0x19E,
+       0x19F,
+       0x1A1,
+       0x1A2,
+       0x1A3,
+       0x1A4,
+       0x1A5,
+       0x1A6,
+       0x1A8,
+       0x1A9,
+       0x1AA,
+       0x1AC,
+       0x1AD,
+       0x1AE,
+       0x1B0,
+       0x1B1,
+       0x1B4,
+       0x1B5,
+       0x1B6,
+       0x1B7,
+       0x1B9,
+       0x1BB,
+       0x1BC,
+       0x1BD,
+       0x1C0,
+       0x1C4,
+       0x1C6,
+       0x1C7,
+       0x1C9,
+       0x1CA,
+       0x1CC,
+       0x1CD,
+       0x1CE,
+       0x1CF,
+       0x1D0,
+       0x1D1,
+       0x1D2,
+       0x1D3,
+       0x1D4,
+       0x1D5,
+       0x1D6,
+       0x1D7,
+       0x1D8,
+       0x1D9,
+       0x1DA,
+       0x1DB,
+       0x1DC,
+       0x1DE,
+       0x1DF,
+       0x1E0,
+       0x1E1,
+       0x1E2,
+       0x1E3,
+       0x1E4,
+       0x1E5,
+       0x1E6,
+       0x1E7,
+       0x1E8,
+       0x1E9,
+       0x1EA,
+       0x1EB,
+       0x1EC,
+       0x1ED,
+       0x1EE,
+       0x1EF,
+       0x1F1,
+       0x1F3,
+       0x1F4,
+       0x1F5,
+       0x1F6,
+       0x1F9,
+       0x1FA,
+       0x1FB,
+       0x1FC,
+       0x1FD,
+       0x1FE,
+       0x1FF,
+       0x200,
+       0x201,
+       0x202,
+       0x203,
+       0x204,
+       0x205,
+       0x206,
+       0x207,
+       0x208,
+       0x209,
+       0x20A,
+       0x20B,
+       0x20C,
+       0x20D,
+       0x20E,
+       0x20F,
+       0x210,
+       0x211,
+       0x212,
+       0x213,
+       0x214,
+       0x215,
+       0x216,
+       0x217,
+       0x218,
+       0x219,
+       0x21A,
+       0x21B,
+       0x21C,
+       0x21D,
+       0x21E,
+       0x21F,
+       0x220,
+       0x221,
+       0x222,
+       0x223,
+       0x224,
+       0x225,
+       0x226,
+       0x227,
+       0x228,
+       0x229,
+       0x22A,
+       0x22B,
+       0x22C,
+       0x22D,
+       0x22E,
+       0x22F,
+       0x230,
+       0x231,
+       0x232,
+       0x233,
+       0x23A,
+       0x23C,
+       0x23D,
+       0x23F,
+       0x241,
+       0x242,
+       0x243,
+       0x247,
+       0x248,
+       0x249,
+       0x24A,
+       0x24B,
+       0x24C,
+       0x24D,
+       0x24E,
+       0x24F,
+       0x294,
+       0x295,
+       0x2B9,
+       0x2C0,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x300,
+       0x370,
+       0x371,
+       0x372,
+       0x373,
+       0x374,
+       0x375,
+       0x376,
+       0x377,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x390,
+       0x391,
+       0x3A2,
+       0x3A3,
+       0x3AC,
+       0x3CF,
+       0x3D0,
+       0x3D2,
+       0x3D5,
+       0x3D8,
+       0x3D9,
+       0x3DA,
+       0x3DB,
+       0x3DC,
+       0x3DD,
+       0x3DE,
+       0x3DF,
+       0x3E0,
+       0x3E1,
+       0x3E2,
+       0x3E3,
+       0x3E4,
+       0x3E5,
+       0x3E6,
+       0x3E7,
+       0x3E8,
+       0x3E9,
+       0x3EA,
+       0x3EB,
+       0x3EC,
+       0x3ED,
+       0x3EE,
+       0x3EF,
+       0x3F4,
+       0x3F5,
+       0x3F6,
+       0x3F7,
+       0x3F8,
+       0x3F9,
+       0x3FB,
+       0x3FD,
+       0x430,
+       0x460,
+       0x461,
+       0x462,
+       0x463,
+       0x464,
+       0x465,
+       0x466,
+       0x467,
+       0x468,
+       0x469,
+       0x46A,
+       0x46B,
+       0x46C,
+       0x46D,
+       0x46E,
+       0x46F,
+       0x470,
+       0x471,
+       0x472,
+       0x473,
+       0x474,
+       0x475,
+       0x476,
+       0x477,
+       0x478,
+       0x479,
+       0x47A,
+       0x47B,
+       0x47C,
+       0x47D,
+       0x47E,
+       0x47F,
+       0x480,
+       0x481,
+       0x482,
+       0x483,
+       0x48A,
+       0x48B,
+       0x48C,
+       0x48D,
+       0x48E,
+       0x48F,
+       0x490,
+       0x491,
+       0x492,
+       0x493,
+       0x494,
+       0x495,
+       0x496,
+       0x497,
+       0x498,
+       0x499,
+       0x49A,
+       0x49B,
+       0x49C,
+       0x49D,
+       0x49E,
+       0x49F,
+       0x4A0,
+       0x4A1,
+       0x4A2,
+       0x4A3,
+       0x4A4,
+       0x4A5,
+       0x4A6,
+       0x4A7,
+       0x4A8,
+       0x4A9,
+       0x4AA,
+       0x4AB,
+       0x4AC,
+       0x4AD,
+       0x4AE,
+       0x4AF,
+       0x4B0,
+       0x4B1,
+       0x4B2,
+       0x4B3,
+       0x4B4,
+       0x4B5,
+       0x4B6,
+       0x4B7,
+       0x4B8,
+       0x4B9,
+       0x4BA,
+       0x4BB,
+       0x4BC,
+       0x4BD,
+       0x4BE,
+       0x4BF,
+       0x4C0,
+       0x4C2,
+       0x4C3,
+       0x4C4,
+       0x4C5,
+       0x4C6,
+       0x4C7,
+       0x4C8,
+       0x4C9,
+       0x4CA,
+       0x4CB,
+       0x4CC,
+       0x4CD,
+       0x4CE,
+       0x4D0,
+       0x4D1,
+       0x4D2,
+       0x4D3,
+       0x4D4,
+       0x4D5,
+       0x4D6,
+       0x4D7,
+       0x4D8,
+       0x4D9,
+       0x4DA,
+       0x4DB,
+       0x4DC,
+       0x4DD,
+       0x4DE,
+       0x4DF,
+       0x4E0,
+       0x4E1,
+       0x4E2,
+       0x4E3,
+       0x4E4,
+       0x4E5,
+       0x4E6,
+       0x4E7,
+       0x4E8,
+       0x4E9,
+       0x4EA,
+       0x4EB,
+       0x4EC,
+       0x4ED,
+       0x4EE,
+       0x4EF,
+       0x4F0,
+       0x4F1,
+       0x4F2,
+       0x4F3,
+       0x4F4,
+       0x4F5,
+       0x4F6,
+       0x4F7,
+       0x4F8,
+       0x4F9,
+       0x4FA,
+       0x4FB,
+       0x4FC,
+       0x4FD,
+       0x4FE,
+       0x4FF,
+       0x500,
+       0x501,
+       0x502,
+       0x503,
+       0x504,
+       0x505,
+       0x506,
+       0x507,
+       0x508,
+       0x509,
+       0x50A,
+       0x50B,
+       0x50C,
+       0x50D,
+       0x50E,
+       0x50F,
+       0x510,
+       0x511,
+       0x512,
+       0x513,
+       0x514,
+       0x515,
+       0x516,
+       0x517,
+       0x518,
+       0x519,
+       0x51A,
+       0x51B,
+       0x51C,
+       0x51D,
+       0x51E,
+       0x51F,
+       0x520,
+       0x521,
+       0x522,
+       0x523,
+       0x524,
+       0x525,
+       0x526,
+       0x527,
+       0x528,
+       0x529,
+       0x52A,
+       0x52B,
+       0x52C,
+       0x52D,
+       0x52E,
+       0x52F,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x55D,
+       0x55E,
+       0x561,
+       0x588,
+       0x589,
+       0x58A,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F4,
+       0x600,
+       0x606,
+       0x60C,
+       0x60E,
+       0x610,
+       0x61B,
+       0x61C,
+       0x61D,
+       0x61F,
+       0x620,
+       0x64B,
+       0x660,
+       0x66A,
+       0x66B,
+       0x66D,
+       0x66E,
+       0x670,
+       0x671,
+       0x6D4,
+       0x6D5,
+       0x6D6,
+       0x6DD,
+       0x6DE,
+       0x6DF,
+       0x6E5,
+       0x6E7,
+       0x6E9,
+       0x6EA,
+       0x6EE,
+       0x6F0,
+       0x6FA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x703,
+       0x70F,
+       0x710,
+       0x711,
+       0x712,
+       0x730,
+       0x74B,
+       0x74D,
+       0x7A6,
+       0x7B1,
+       0x7B2,
+       0x7C0,
+       0x7CA,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7F8,
+       0x7F9,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x816,
+       0x81A,
+       0x81B,
+       0x824,
+       0x825,
+       0x828,
+       0x829,
+       0x82E,
+       0x840,
+       0x859,
+       0x85C,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x904,
+       0x93A,
+       0x93D,
+       0x93E,
+       0x950,
+       0x951,
+       0x958,
+       0x962,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x981,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9BD,
+       0x9BE,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CE,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E2,
+       0x9E4,
+       0x9E6,
+       0x9F0,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA70,
+       0xA72,
+       0xA75,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xABD,
+       0xABE,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE2,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB3D,
+       0xB3E,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB62,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB83,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC3E,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC62,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCBD,
+       0xCBE,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE2,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD3E,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4E,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD62,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE31,
+       0xE32,
+       0xE34,
+       0xE3B,
+       0xE40,
+       0xE47,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEB1,
+       0xEB2,
+       0xEB4,
+       0xEBA,
+       0xEBB,
+       0xEBD,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF18,
+       0xF1A,
+       0xF20,
+       0xF2A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF85,
+       0xF86,
+       0xF88,
+       0xF8D,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x1000,
+       0x102B,
+       0x103F,
+       0x1040,
+       0x104A,
+       0x104C,
+       0x1050,
+       0x1056,
+       0x105A,
+       0x105E,
+       0x1061,
+       0x1062,
+       0x1065,
+       0x1067,
+       0x106E,
+       0x1071,
+       0x1075,
+       0x1082,
+       0x108E,
+       0x108F,
+       0x1090,
+       0x109A,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x1360,
+       0x1362,
+       0x1363,
+       0x1367,
+       0x1369,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166E,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x169D,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1712,
+       0x1715,
+       0x1720,
+       0x1732,
+       0x1735,
+       0x1737,
+       0x1740,
+       0x1752,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17B4,
+       0x17D4,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DD,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x1802,
+       0x1803,
+       0x1804,
+       0x1808,
+       0x1809,
+       0x180A,
+       0x180B,
+       0x180E,
+       0x180F,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18A9,
+       0x18AA,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1944,
+       0x1946,
+       0x1950,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19C1,
+       0x19C8,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A17,
+       0x1A1C,
+       0x1A20,
+       0x1A55,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A80,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA7,
+       0x1AA8,
+       0x1AAC,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B05,
+       0x1B34,
+       0x1B45,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B5C,
+       0x1B5E,
+       0x1B60,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1B83,
+       0x1BA1,
+       0x1BAE,
+       0x1BB0,
+       0x1BBA,
+       0x1BE6,
+       0x1BF4,
+       0x1C00,
+       0x1C24,
+       0x1C38,
+       0x1C3B,
+       0x1C3D,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C50,
+       0x1C5A,
+       0x1C7E,
+       0x1C80,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF2,
+       0x1CF5,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DC0,
+       0x1DF6,
+       0x1DFC,
+       0x1E00,
+       0x1E01,
+       0x1E02,
+       0x1E03,
+       0x1E04,
+       0x1E05,
+       0x1E06,
+       0x1E07,
+       0x1E08,
+       0x1E09,
+       0x1E0A,
+       0x1E0B,
+       0x1E0C,
+       0x1E0D,
+       0x1E0E,
+       0x1E0F,
+       0x1E10,
+       0x1E11,
+       0x1E12,
+       0x1E13,
+       0x1E14,
+       0x1E15,
+       0x1E16,
+       0x1E17,
+       0x1E18,
+       0x1E19,
+       0x1E1A,
+       0x1E1B,
+       0x1E1C,
+       0x1E1D,
+       0x1E1E,
+       0x1E1F,
+       0x1E20,
+       0x1E21,
+       0x1E22,
+       0x1E23,
+       0x1E24,
+       0x1E25,
+       0x1E26,
+       0x1E27,
+       0x1E28,
+       0x1E29,
+       0x1E2A,
+       0x1E2B,
+       0x1E2C,
+       0x1E2D,
+       0x1E2E,
+       0x1E2F,
+       0x1E30,
+       0x1E31,
+       0x1E32,
+       0x1E33,
+       0x1E34,
+       0x1E35,
+       0x1E36,
+       0x1E37,
+       0x1E38,
+       0x1E39,
+       0x1E3A,
+       0x1E3B,
+       0x1E3C,
+       0x1E3D,
+       0x1E3E,
+       0x1E3F,
+       0x1E40,
+       0x1E41,
+       0x1E42,
+       0x1E43,
+       0x1E44,
+       0x1E45,
+       0x1E46,
+       0x1E47,
+       0x1E48,
+       0x1E49,
+       0x1E4A,
+       0x1E4B,
+       0x1E4C,
+       0x1E4D,
+       0x1E4E,
+       0x1E4F,
+       0x1E50,
+       0x1E51,
+       0x1E52,
+       0x1E53,
+       0x1E54,
+       0x1E55,
+       0x1E56,
+       0x1E57,
+       0x1E58,
+       0x1E59,
+       0x1E5A,
+       0x1E5B,
+       0x1E5C,
+       0x1E5D,
+       0x1E5E,
+       0x1E5F,
+       0x1E60,
+       0x1E61,
+       0x1E62,
+       0x1E63,
+       0x1E64,
+       0x1E65,
+       0x1E66,
+       0x1E67,
+       0x1E68,
+       0x1E69,
+       0x1E6A,
+       0x1E6B,
+       0x1E6C,
+       0x1E6D,
+       0x1E6E,
+       0x1E6F,
+       0x1E70,
+       0x1E71,
+       0x1E72,
+       0x1E73,
+       0x1E74,
+       0x1E75,
+       0x1E76,
+       0x1E77,
+       0x1E78,
+       0x1E79,
+       0x1E7A,
+       0x1E7B,
+       0x1E7C,
+       0x1E7D,
+       0x1E7E,
+       0x1E7F,
+       0x1E80,
+       0x1E81,
+       0x1E82,
+       0x1E83,
+       0x1E84,
+       0x1E85,
+       0x1E86,
+       0x1E87,
+       0x1E88,
+       0x1E89,
+       0x1E8A,
+       0x1E8B,
+       0x1E8C,
+       0x1E8D,
+       0x1E8E,
+       0x1E8F,
+       0x1E90,
+       0x1E91,
+       0x1E92,
+       0x1E93,
+       0x1E94,
+       0x1E95,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1EA1,
+       0x1EA2,
+       0x1EA3,
+       0x1EA4,
+       0x1EA5,
+       0x1EA6,
+       0x1EA7,
+       0x1EA8,
+       0x1EA9,
+       0x1EAA,
+       0x1EAB,
+       0x1EAC,
+       0x1EAD,
+       0x1EAE,
+       0x1EAF,
+       0x1EB0,
+       0x1EB1,
+       0x1EB2,
+       0x1EB3,
+       0x1EB4,
+       0x1EB5,
+       0x1EB6,
+       0x1EB7,
+       0x1EB8,
+       0x1EB9,
+       0x1EBA,
+       0x1EBB,
+       0x1EBC,
+       0x1EBD,
+       0x1EBE,
+       0x1EBF,
+       0x1EC0,
+       0x1EC1,
+       0x1EC2,
+       0x1EC3,
+       0x1EC4,
+       0x1EC5,
+       0x1EC6,
+       0x1EC7,
+       0x1EC8,
+       0x1EC9,
+       0x1ECA,
+       0x1ECB,
+       0x1ECC,
+       0x1ECD,
+       0x1ECE,
+       0x1ECF,
+       0x1ED0,
+       0x1ED1,
+       0x1ED2,
+       0x1ED3,
+       0x1ED4,
+       0x1ED5,
+       0x1ED6,
+       0x1ED7,
+       0x1ED8,
+       0x1ED9,
+       0x1EDA,
+       0x1EDB,
+       0x1EDC,
+       0x1EDD,
+       0x1EDE,
+       0x1EDF,
+       0x1EE0,
+       0x1EE1,
+       0x1EE2,
+       0x1EE3,
+       0x1EE4,
+       0x1EE5,
+       0x1EE6,
+       0x1EE7,
+       0x1EE8,
+       0x1EE9,
+       0x1EEA,
+       0x1EEB,
+       0x1EEC,
+       0x1EED,
+       0x1EEE,
+       0x1EEF,
+       0x1EF0,
+       0x1EF1,
+       0x1EF2,
+       0x1EF3,
+       0x1EF4,
+       0x1EF5,
+       0x1EF6,
+       0x1EF7,
+       0x1EF8,
+       0x1EF9,
+       0x1EFA,
+       0x1EFB,
+       0x1EFC,
+       0x1EFD,
+       0x1EFE,
+       0x1EFF,
+       0x1F08,
+       0x1F10,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F28,
+       0x1F30,
+       0x1F38,
+       0x1F40,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1F7E,
+       0x1F80,
+       0x1F88,
+       0x1F90,
+       0x1F98,
+       0x1FA0,
+       0x1FA8,
+       0x1FB0,
+       0x1FB5,
+       0x1FB6,
+       0x1FB8,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FC8,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FD8,
+       0x1FDC,
+       0x1FE0,
+       0x1FE8,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FF8,
+       0x1FFD,
+       0x2000,
+       0x200B,
+       0x200C,
+       0x200E,
+       0x2010,
+       0x2013,
+       0x2015,
+       0x2018,
+       0x2020,
+       0x2024,
+       0x2025,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x2030,
+       0x2039,
+       0x203B,
+       0x203C,
+       0x203E,
+       0x2045,
+       0x2047,
+       0x204A,
+       0x205F,
+       0x2060,
+       0x2065,
+       0x2066,
+       0x2070,
+       0x2071,
+       0x2072,
+       0x207D,
+       0x207F,
+       0x2080,
+       0x208D,
+       0x208F,
+       0x2090,
+       0x209D,
+       0x20D0,
+       0x20F1,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x210B,
+       0x210E,
+       0x2110,
+       0x2113,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x2130,
+       0x2134,
+       0x2135,
+       0x2139,
+       0x213A,
+       0x213C,
+       0x213E,
+       0x2140,
+       0x2145,
+       0x2146,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2170,
+       0x2180,
+       0x2183,
+       0x2184,
+       0x2185,
+       0x2189,
+       0x2308,
+       0x230C,
+       0x2329,
+       0x232B,
+       0x24B6,
+       0x24D0,
+       0x24EA,
+       0x275B,
+       0x2761,
+       0x2768,
+       0x2776,
+       0x27C5,
+       0x27C7,
+       0x27E6,
+       0x27F0,
+       0x2983,
+       0x2999,
+       0x29D8,
+       0x29DC,
+       0x29FC,
+       0x29FE,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2C61,
+       0x2C62,
+       0x2C65,
+       0x2C67,
+       0x2C68,
+       0x2C69,
+       0x2C6A,
+       0x2C6B,
+       0x2C6C,
+       0x2C6D,
+       0x2C71,
+       0x2C72,
+       0x2C73,
+       0x2C75,
+       0x2C76,
+       0x2C7E,
+       0x2C81,
+       0x2C82,
+       0x2C83,
+       0x2C84,
+       0x2C85,
+       0x2C86,
+       0x2C87,
+       0x2C88,
+       0x2C89,
+       0x2C8A,
+       0x2C8B,
+       0x2C8C,
+       0x2C8D,
+       0x2C8E,
+       0x2C8F,
+       0x2C90,
+       0x2C91,
+       0x2C92,
+       0x2C93,
+       0x2C94,
+       0x2C95,
+       0x2C96,
+       0x2C97,
+       0x2C98,
+       0x2C99,
+       0x2C9A,
+       0x2C9B,
+       0x2C9C,
+       0x2C9D,
+       0x2C9E,
+       0x2C9F,
+       0x2CA0,
+       0x2CA1,
+       0x2CA2,
+       0x2CA3,
+       0x2CA4,
+       0x2CA5,
+       0x2CA6,
+       0x2CA7,
+       0x2CA8,
+       0x2CA9,
+       0x2CAA,
+       0x2CAB,
+       0x2CAC,
+       0x2CAD,
+       0x2CAE,
+       0x2CAF,
+       0x2CB0,
+       0x2CB1,
+       0x2CB2,
+       0x2CB3,
+       0x2CB4,
+       0x2CB5,
+       0x2CB6,
+       0x2CB7,
+       0x2CB8,
+       0x2CB9,
+       0x2CBA,
+       0x2CBB,
+       0x2CBC,
+       0x2CBD,
+       0x2CBE,
+       0x2CBF,
+       0x2CC0,
+       0x2CC1,
+       0x2CC2,
+       0x2CC3,
+       0x2CC4,
+       0x2CC5,
+       0x2CC6,
+       0x2CC7,
+       0x2CC8,
+       0x2CC9,
+       0x2CCA,
+       0x2CCB,
+       0x2CCC,
+       0x2CCD,
+       0x2CCE,
+       0x2CCF,
+       0x2CD0,
+       0x2CD1,
+       0x2CD2,
+       0x2CD3,
+       0x2CD4,
+       0x2CD5,
+       0x2CD6,
+       0x2CD7,
+       0x2CD8,
+       0x2CD9,
+       0x2CDA,
+       0x2CDB,
+       0x2CDC,
+       0x2CDD,
+       0x2CDE,
+       0x2CDF,
+       0x2CE0,
+       0x2CE1,
+       0x2CE2,
+       0x2CE3,
+       0x2CE5,
+       0x2CEB,
+       0x2CEC,
+       0x2CED,
+       0x2CEE,
+       0x2CEF,
+       0x2CF2,
+       0x2CF3,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D7F,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E0E,
+       0x2E1C,
+       0x2E1E,
+       0x2E20,
+       0x2E2A,
+       0x2E2E,
+       0x2E2F,
+       0x2E30,
+       0x2E3C,
+       0x2E3D,
+       0x2E42,
+       0x2E43,
+       0x3000,
+       0x3001,
+       0x3002,
+       0x3003,
+       0x3005,
+       0x3008,
+       0x3012,
+       0x3014,
+       0x301C,
+       0x301D,
+       0x3020,
+       0x3021,
+       0x302A,
+       0x3030,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x309B,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA4FF,
+       0xA500,
+       0xA60D,
+       0xA60E,
+       0xA610,
+       0xA620,
+       0xA62A,
+       0xA62C,
+       0xA640,
+       0xA641,
+       0xA642,
+       0xA643,
+       0xA644,
+       0xA645,
+       0xA646,
+       0xA647,
+       0xA648,
+       0xA649,
+       0xA64A,
+       0xA64B,
+       0xA64C,
+       0xA64D,
+       0xA64E,
+       0xA64F,
+       0xA650,
+       0xA651,
+       0xA652,
+       0xA653,
+       0xA654,
+       0xA655,
+       0xA656,
+       0xA657,
+       0xA658,
+       0xA659,
+       0xA65A,
+       0xA65B,
+       0xA65C,
+       0xA65D,
+       0xA65E,
+       0xA65F,
+       0xA660,
+       0xA661,
+       0xA662,
+       0xA663,
+       0xA664,
+       0xA665,
+       0xA666,
+       0xA667,
+       0xA668,
+       0xA669,
+       0xA66A,
+       0xA66B,
+       0xA66C,
+       0xA66D,
+       0xA66E,
+       0xA66F,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA680,
+       0xA681,
+       0xA682,
+       0xA683,
+       0xA684,
+       0xA685,
+       0xA686,
+       0xA687,
+       0xA688,
+       0xA689,
+       0xA68A,
+       0xA68B,
+       0xA68C,
+       0xA68D,
+       0xA68E,
+       0xA68F,
+       0xA690,
+       0xA691,
+       0xA692,
+       0xA693,
+       0xA694,
+       0xA695,
+       0xA696,
+       0xA697,
+       0xA698,
+       0xA699,
+       0xA69A,
+       0xA69B,
+       0xA69E,
+       0xA69F,
+       0xA6A0,
+       0xA6F0,
+       0xA6F2,
+       0xA6F3,
+       0xA6F4,
+       0xA6F7,
+       0xA6F8,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA723,
+       0xA724,
+       0xA725,
+       0xA726,
+       0xA727,
+       0xA728,
+       0xA729,
+       0xA72A,
+       0xA72B,
+       0xA72C,
+       0xA72D,
+       0xA72E,
+       0xA72F,
+       0xA732,
+       0xA733,
+       0xA734,
+       0xA735,
+       0xA736,
+       0xA737,
+       0xA738,
+       0xA739,
+       0xA73A,
+       0xA73B,
+       0xA73C,
+       0xA73D,
+       0xA73E,
+       0xA73F,
+       0xA740,
+       0xA741,
+       0xA742,
+       0xA743,
+       0xA744,
+       0xA745,
+       0xA746,
+       0xA747,
+       0xA748,
+       0xA749,
+       0xA74A,
+       0xA74B,
+       0xA74C,
+       0xA74D,
+       0xA74E,
+       0xA74F,
+       0xA750,
+       0xA751,
+       0xA752,
+       0xA753,
+       0xA754,
+       0xA755,
+       0xA756,
+       0xA757,
+       0xA758,
+       0xA759,
+       0xA75A,
+       0xA75B,
+       0xA75C,
+       0xA75D,
+       0xA75E,
+       0xA75F,
+       0xA760,
+       0xA761,
+       0xA762,
+       0xA763,
+       0xA764,
+       0xA765,
+       0xA766,
+       0xA767,
+       0xA768,
+       0xA769,
+       0xA76A,
+       0xA76B,
+       0xA76C,
+       0xA76D,
+       0xA76E,
+       0xA76F,
+       0xA779,
+       0xA77A,
+       0xA77B,
+       0xA77C,
+       0xA77D,
+       0xA77F,
+       0xA780,
+       0xA781,
+       0xA782,
+       0xA783,
+       0xA784,
+       0xA785,
+       0xA786,
+       0xA787,
+       0xA788,
+       0xA789,
+       0xA78B,
+       0xA78C,
+       0xA78D,
+       0xA78E,
+       0xA78F,
+       0xA790,
+       0xA791,
+       0xA792,
+       0xA793,
+       0xA796,
+       0xA797,
+       0xA798,
+       0xA799,
+       0xA79A,
+       0xA79B,
+       0xA79C,
+       0xA79D,
+       0xA79E,
+       0xA79F,
+       0xA7A0,
+       0xA7A1,
+       0xA7A2,
+       0xA7A3,
+       0xA7A4,
+       0xA7A5,
+       0xA7A6,
+       0xA7A7,
+       0xA7A8,
+       0xA7A9,
+       0xA7AA,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA7F8,
+       0xA7FB,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA823,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA876,
+       0xA878,
+       0xA880,
+       0xA882,
+       0xA8B4,
+       0xA8C5,
+       0xA8CE,
+       0xA8D0,
+       0xA8DA,
+       0xA8E0,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA90A,
+       0xA926,
+       0xA92E,
+       0xA92F,
+       0xA930,
+       0xA947,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA984,
+       0xA9B3,
+       0xA9C1,
+       0xA9C8,
+       0xA9CA,
+       0xA9CF,
+       0xA9D0,
+       0xA9DA,
+       0xA9E0,
+       0xA9E5,
+       0xA9E6,
+       0xA9F0,
+       0xA9FA,
+       0xA9FF,
+       0xAA00,
+       0xAA29,
+       0xAA37,
+       0xAA40,
+       0xAA43,
+       0xAA44,
+       0xAA4C,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA5D,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAA7B,
+       0xAA7E,
+       0xAAB0,
+       0xAAB1,
+       0xAAB2,
+       0xAAB5,
+       0xAAB7,
+       0xAAB9,
+       0xAABE,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAEB,
+       0xAAF0,
+       0xAAF2,
+       0xAAF5,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABE3,
+       0xABEB,
+       0xABEC,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB1E,
+       0xFB1F,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD40,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE00,
+       0xFE10,
+       0xFE12,
+       0xFE13,
+       0xFE14,
+       0xFE17,
+       0xFE19,
+       0xFE20,
+       0xFE2E,
+       0xFE31,
+       0xFE33,
+       0xFE35,
+       0xFE45,
+       0xFE47,
+       0xFE49,
+       0xFE50,
+       0xFE52,
+       0xFE53,
+       0xFE55,
+       0xFE56,
+       0xFE58,
+       0xFE59,
+       0xFE5F,
+       0xFE63,
+       0xFE64,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFEFF,
+       0xFF00,
+       0xFF01,
+       0xFF02,
+       0xFF08,
+       0xFF0A,
+       0xFF0C,
+       0xFF0E,
+       0xFF0F,
+       0xFF1A,
+       0xFF1B,
+       0xFF1F,
+       0xFF20,
+       0xFF21,
+       0xFF3B,
+       0xFF3C,
+       0xFF3D,
+       0xFF3E,
+       0xFF41,
+       0xFF5B,
+       0xFF5C,
+       0xFF5D,
+       0xFF5E,
+       0xFF5F,
+       0xFF61,
+       0xFF62,
+       0xFF64,
+       0xFF65,
+       0xFF66,
+       0xFF9E,
+       0xFFA0,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0xFFF9,
+       0xFFFC,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x101FD,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102E1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x10376,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x10428,
+       0x10450,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A01,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A10,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10A56,
+       0x10A58,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10AE7,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11003,
+       0x11038,
+       0x11047,
+       0x11049,
+       0x11066,
+       0x11070,
+       0x1107F,
+       0x11083,
+       0x110B0,
+       0x110BB,
+       0x110BD,
+       0x110BE,
+       0x110C2,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11103,
+       0x11127,
+       0x11135,
+       0x11136,
+       0x11140,
+       0x11141,
+       0x11144,
+       0x11150,
+       0x11173,
+       0x11174,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x11183,
+       0x111B3,
+       0x111C1,
+       0x111C5,
+       0x111C7,
+       0x111CD,
+       0x111CE,
+       0x111D0,
+       0x111DA,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1122C,
+       0x11238,
+       0x1123A,
+       0x1123B,
+       0x1123D,
+       0x112B0,
+       0x112DF,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x1133D,
+       0x1133E,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11362,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114B0,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115AF,
+       0x115B6,
+       0x115B8,
+       0x115C1,
+       0x115C2,
+       0x115C4,
+       0x115C9,
+       0x115CA,
+       0x11600,
+       0x11630,
+       0x11641,
+       0x11643,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116AB,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118C0,
+       0x118E0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16A6E,
+       0x16A70,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF5,
+       0x16AF6,
+       0x16B00,
+       0x16B30,
+       0x16B37,
+       0x16B39,
+       0x16B40,
+       0x16B44,
+       0x16B45,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F51,
+       0x16F7F,
+       0x16F8F,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9D,
+       0x1BC9F,
+       0x1BCA0,
+       0x1BCA4,
+       0x1D165,
+       0x1D16A,
+       0x1D16D,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1D400,
+       0x1D41A,
+       0x1D434,
+       0x1D44E,
+       0x1D455,
+       0x1D456,
+       0x1D468,
+       0x1D482,
+       0x1D49C,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4B6,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D4D0,
+       0x1D4EA,
+       0x1D504,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D538,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D56C,
+       0x1D586,
+       0x1D5A0,
+       0x1D5BA,
+       0x1D5D4,
+       0x1D5EE,
+       0x1D608,
+       0x1D622,
+       0x1D63C,
+       0x1D656,
+       0x1D670,
+       0x1D68A,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6E2,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D71C,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D756,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D790,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CA,
+       0x1D7CB,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8D0,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x1F676,
+       0x1F679,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0001,
+       0xE0002,
+       0xE0020,
+       0xE0080,
+       0xE0100,
+       0xE01F0
 };
 
-static const UV Cased_invlist[] = { /* for EBCDIC POSIX-BC */
-       279,    /* Number of elements */
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define PL_SB_ENUM_COUNT 16
+
+typedef enum {
+       PL_SB_Other = 0,
+       PL_SB_ATerm = 1,
+       PL_SB_CR = 2,
+       PL_SB_Close = 3,
+       PL_SB_EDGE = 4,
+       PL_SB_Extend = 5,
+       PL_SB_Format = 6,
+       PL_SB_LF = 7,
+       PL_SB_Lower = 8,
+       PL_SB_Numeric = 9,
+       PL_SB_OLetter = 10,
+       PL_SB_SContinue = 11,
+       PL_SB_STerm = 12,
+       PL_SB_Sep = 13,
+       PL_SB_Sp = 14,
+       PL_SB_Upper = 15
+} PL_SB_enum;
+
+static const PL_SB_enum Sentence_Break_invmap[] = { /* for EBCDIC POSIX-BC */
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_CR,
+       PL_SB_Other,
+       PL_SB_LF,
+       PL_SB_Other,
+       PL_SB_Sep,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_ATerm,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Close,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Format,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Upper,
+       PL_SB_Close,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Close,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Numeric,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Sp,
+       PL_SB_OLetter,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_Format,
+       PL_SB_Extend,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_ATerm,
+       PL_SB_Other,
+       PL_SB_Sep,
+       PL_SB_Format,
+       PL_SB_Sp,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Extend,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Sp,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_ATerm,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_STerm,
+       PL_SB_SContinue,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_ATerm,
+       PL_SB_Other,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_STerm,
+       PL_SB_Close,
+       PL_SB_SContinue,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_STerm,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_STerm,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Format,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Lower,
+       PL_SB_Upper,
+       PL_SB_Lower,
+       PL_SB_Other,
+       PL_SB_Numeric,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Upper,
+       PL_SB_Other,
+       PL_SB_Close,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_OLetter,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Format,
+       PL_SB_Other,
+       PL_SB_Extend,
+       PL_SB_Other
+};
+
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_REGCOMP_C)
+
+static const UV UpperLatin1_invlist[] = { /* for EBCDIC POSIX-BC */
+       57,     /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       175,
-       192,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       225,
-       226,
-       234,
-       235,
-       240,
-       252,
-       253,
-       254,
-       255,
-       256,
-       443,
-       444,
-       448,
-       452,
-       660,
-       661,
-       697,
-       704,
-       706,
-       736,
-       741,
-       837,
-       838,
-       880,
-       884,
-       886,
-       888,
-       890,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1377,
-       1416,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       7424,
-       7616,
-       7680,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8501,
-       8505,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8576,
-       8579,
-       8581,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       42560,
-       42606,
-       42624,
-       42654,
-       42786,
-       42888,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       43000,
-       43003,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       64256,
-       64263,
-       64275,
-       64280,
-       65313,
-       65339,
-       65345,
-       65371,
-       66560,
-       66640,
-       71840,
-       71904,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370
+       0x0,
+       0x4,
+       0x5,
+       0x6,
+       0x7,
+       0x8,
+       0xB,
+       0x14,
+       0x15,
+       0x17,
+       0x18,
+       0x1A,
+       0x1C,
+       0x20,
+       0x26,
+       0x28,
+       0x2D,
+       0x30,
+       0x32,
+       0x33,
+       0x37,
+       0x38,
+       0x3C,
+       0x3E,
+       0x3F,
+       0x41,
+       0x4A,
+       0x51,
+       0x5A,
+       0x5F,
+       0x60,
+       0x62,
+       0x6A,
+       0x70,
+       0x7A,
+       0x80,
+       0x81,
+       0x8A,
+       0x91,
+       0x9A,
+       0xA2,
+       0xAA,
+       0xBB,
+       0xBE,
+       0xC1,
+       0xCA,
+       0xD1,
+       0xDA,
+       0xE2,
+       0xEA,
+       0xF0,
+       0xFA,
+       0xFB,
+       0xFC,
+       0xFD,
+       0xFE,
+       0xFF
 };
 
+#endif /* defined(PERL_IN_REGCOMP_C) */
+
+#if defined(PERL_IN_PERL_C)
+
 static const UV VertSpace_invlist[] = { /* for EBCDIC POSIX-BC */
        9,      /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       11,
-       14,
-       21,
-       22,
-       37,
-       38,
-       8232,
-       8234
+       0x0,
+       0xB,
+       0xE,
+       0x15,
+       0x16,
+       0x25,
+       0x26,
+       0x2028,
+       0x202A
+};
+
+static const UV Word_Break_invlist[] = { /* for EBCDIC POSIX-BC */
+       1503,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       0,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0xB,
+       0xD,
+       0xE,
+       0x15,
+       0x16,
+       0x25,
+       0x26,
+       0x42,
+       0x4A,
+       0x4B,
+       0x4C,
+       0x51,
+       0x5A,
+       0x5E,
+       0x5F,
+       0x62,
+       0x6A,
+       0x6B,
+       0x6C,
+       0x6D,
+       0x6E,
+       0x70,
+       0x79,
+       0x7A,
+       0x7B,
+       0x7D,
+       0x7E,
+       0x7F,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xB3,
+       0xB4,
+       0xC0,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE1,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFA,
+       0xFC,
+       0xFD,
+       0xFE,
+       0xFF,
+       0x100,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2D7,
+       0x2D8,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x300,
+       0x370,
+       0x375,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x483,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x589,
+       0x58A,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x5F4,
+       0x5F5,
+       0x600,
+       0x606,
+       0x60C,
+       0x60E,
+       0x610,
+       0x61B,
+       0x61C,
+       0x61D,
+       0x620,
+       0x64B,
+       0x660,
+       0x66A,
+       0x66B,
+       0x66C,
+       0x66D,
+       0x66E,
+       0x670,
+       0x671,
+       0x6D4,
+       0x6D5,
+       0x6D6,
+       0x6DD,
+       0x6DE,
+       0x6DF,
+       0x6E5,
+       0x6E7,
+       0x6E9,
+       0x6EA,
+       0x6EE,
+       0x6F0,
+       0x6FA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x70F,
+       0x710,
+       0x711,
+       0x712,
+       0x730,
+       0x74B,
+       0x74D,
+       0x7A6,
+       0x7B1,
+       0x7B2,
+       0x7C0,
+       0x7CA,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7F8,
+       0x7F9,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x816,
+       0x81A,
+       0x81B,
+       0x824,
+       0x825,
+       0x828,
+       0x829,
+       0x82E,
+       0x840,
+       0x859,
+       0x85C,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x904,
+       0x93A,
+       0x93D,
+       0x93E,
+       0x950,
+       0x951,
+       0x958,
+       0x962,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x981,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9BD,
+       0x9BE,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CE,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E2,
+       0x9E4,
+       0x9E6,
+       0x9F0,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA70,
+       0xA72,
+       0xA75,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xABD,
+       0xABE,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE2,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB3D,
+       0xB3E,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB62,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB83,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC3E,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC62,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCBD,
+       0xCBE,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE2,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD3E,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4E,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD62,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE31,
+       0xE32,
+       0xE34,
+       0xE3B,
+       0xE47,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xEB1,
+       0xEB2,
+       0xEB4,
+       0xEBA,
+       0xEBB,
+       0xEBD,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xF00,
+       0xF01,
+       0xF18,
+       0xF1A,
+       0xF20,
+       0xF2A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF85,
+       0xF86,
+       0xF88,
+       0xF8D,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x102B,
+       0x103F,
+       0x1040,
+       0x104A,
+       0x1056,
+       0x105A,
+       0x105E,
+       0x1061,
+       0x1062,
+       0x1065,
+       0x1067,
+       0x106E,
+       0x1071,
+       0x1075,
+       0x1082,
+       0x108E,
+       0x108F,
+       0x1090,
+       0x109A,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1712,
+       0x1715,
+       0x1720,
+       0x1732,
+       0x1735,
+       0x1740,
+       0x1752,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x17B4,
+       0x17D4,
+       0x17DD,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x180B,
+       0x180E,
+       0x180F,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18A9,
+       0x18AA,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1946,
+       0x1950,
+       0x19B0,
+       0x19C1,
+       0x19C8,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A17,
+       0x1A1C,
+       0x1A55,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A80,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B05,
+       0x1B34,
+       0x1B45,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1B83,
+       0x1BA1,
+       0x1BAE,
+       0x1BB0,
+       0x1BBA,
+       0x1BE6,
+       0x1BF4,
+       0x1C00,
+       0x1C24,
+       0x1C38,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C50,
+       0x1C5A,
+       0x1C7E,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF2,
+       0x1CF5,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DC0,
+       0x1DF6,
+       0x1DFC,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x200C,
+       0x200E,
+       0x2010,
+       0x2018,
+       0x201A,
+       0x2024,
+       0x2025,
+       0x2027,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x203F,
+       0x2041,
+       0x2044,
+       0x2045,
+       0x2054,
+       0x2055,
+       0x2060,
+       0x2065,
+       0x2066,
+       0x2070,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x20D0,
+       0x20F1,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D7F,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x3005,
+       0x3006,
+       0x302A,
+       0x3030,
+       0x3031,
+       0x3036,
+       0x303B,
+       0x303D,
+       0x3099,
+       0x309B,
+       0x309D,
+       0x30A0,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x32D0,
+       0x32FF,
+       0x3300,
+       0x3358,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA620,
+       0xA62A,
+       0xA62C,
+       0xA640,
+       0xA66F,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6A0,
+       0xA6F0,
+       0xA6F2,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA823,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA882,
+       0xA8B4,
+       0xA8C5,
+       0xA8D0,
+       0xA8DA,
+       0xA8E0,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA90A,
+       0xA926,
+       0xA92E,
+       0xA930,
+       0xA947,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA984,
+       0xA9B3,
+       0xA9C1,
+       0xA9CF,
+       0xA9D0,
+       0xA9DA,
+       0xA9E5,
+       0xA9E6,
+       0xA9F0,
+       0xA9FA,
+       0xAA00,
+       0xAA29,
+       0xAA37,
+       0xAA40,
+       0xAA43,
+       0xAA44,
+       0xAA4C,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA7B,
+       0xAA7E,
+       0xAAB0,
+       0xAAB1,
+       0xAAB2,
+       0xAAB5,
+       0xAAB7,
+       0xAAB9,
+       0xAABE,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAE0,
+       0xAAEB,
+       0xAAF0,
+       0xAAF2,
+       0xAAF5,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABE3,
+       0xABEB,
+       0xABEC,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB1E,
+       0xFB1F,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFB50,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE00,
+       0xFE10,
+       0xFE11,
+       0xFE13,
+       0xFE14,
+       0xFE15,
+       0xFE20,
+       0xFE2E,
+       0xFE33,
+       0xFE35,
+       0xFE4D,
+       0xFE50,
+       0xFE51,
+       0xFE52,
+       0xFE53,
+       0xFE54,
+       0xFE55,
+       0xFE56,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFEFF,
+       0xFF00,
+       0xFF07,
+       0xFF08,
+       0xFF0C,
+       0xFF0D,
+       0xFF0E,
+       0xFF0F,
+       0xFF1A,
+       0xFF1B,
+       0xFF1C,
+       0xFF21,
+       0xFF3B,
+       0xFF3F,
+       0xFF40,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFF9E,
+       0xFFA0,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0xFFF9,
+       0xFFFC,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x101FD,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102E1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x10376,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A01,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A10,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10AE7,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11003,
+       0x11038,
+       0x11047,
+       0x11066,
+       0x11070,
+       0x1107F,
+       0x11083,
+       0x110B0,
+       0x110BB,
+       0x110BD,
+       0x110BE,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11103,
+       0x11127,
+       0x11135,
+       0x11136,
+       0x11140,
+       0x11150,
+       0x11173,
+       0x11174,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x11183,
+       0x111B3,
+       0x111C1,
+       0x111C5,
+       0x111D0,
+       0x111DA,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1122C,
+       0x11238,
+       0x112B0,
+       0x112DF,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x1133D,
+       0x1133E,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11362,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114B0,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115AF,
+       0x115B6,
+       0x115B8,
+       0x115C1,
+       0x11600,
+       0x11630,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116AB,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118E0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF5,
+       0x16B00,
+       0x16B30,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F51,
+       0x16F7F,
+       0x16F8F,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B001,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9D,
+       0x1BC9F,
+       0x1BCA0,
+       0x1BCA4,
+       0x1D165,
+       0x1D16A,
+       0x1D16D,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8D0,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x1F1E6,
+       0x1F200,
+       0xE0001,
+       0xE0002,
+       0xE0020,
+       0xE0080,
+       0xE0100,
+       0xE01F0
 };
 
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGEXEC_C)
+
+#define PL_WB_ENUM_COUNT 19
+
+typedef enum {
+       PL_WB_Other = 0,
+       PL_WB_ALetter = 1,
+       PL_WB_CR = 2,
+       PL_WB_Double_Quote = 3,
+       PL_WB_EDGE = 4,
+       PL_WB_Extend = 5,
+       PL_WB_ExtendNumLet = 6,
+       PL_WB_Format = 7,
+       PL_WB_Hebrew_Letter = 8,
+       PL_WB_Katakana = 9,
+       PL_WB_LF = 10,
+       PL_WB_MidLetter = 11,
+       PL_WB_MidNum = 12,
+       PL_WB_MidNumLet = 13,
+       PL_WB_Newline = 14,
+       PL_WB_Numeric = 15,
+       PL_WB_Regional_Indicator = 16,
+       PL_WB_Single_Quote = 17,
+       PL_WB_UNKNOWN = 18
+} PL_WB_enum;
+
+static const PL_WB_enum Word_Break_invmap[] = { /* for EBCDIC POSIX-BC */
+       PL_WB_Other,
+       PL_WB_Newline,
+       PL_WB_CR,
+       PL_WB_Other,
+       PL_WB_LF,
+       PL_WB_Other,
+       PL_WB_Newline,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_Other,
+       PL_WB_Single_Quote,
+       PL_WB_Other,
+       PL_WB_Double_Quote,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Format,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_MidNum,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_MidLetter,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_ALetter,
+       PL_WB_MidLetter,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Numeric,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_Newline,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Extend,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_Other,
+       PL_WB_Hebrew_Letter,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_MidLetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_MidNumLet,
+       PL_WB_Other,
+       PL_WB_MidLetter,
+       PL_WB_MidNum,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ExtendNumLet,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Katakana,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Format,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Numeric,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_ALetter,
+       PL_WB_Other,
+       PL_WB_Regional_Indicator,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Format,
+       PL_WB_Other,
+       PL_WB_Extend,
+       PL_WB_Other
+};
+
+#endif /* defined(PERL_IN_REGEXEC_C) */
+
+#if defined(PERL_IN_PERL_C)
+
 static const UV XPerlSpace_invlist[] = { /* for EBCDIC POSIX-BC */
        23,     /* Number of elements */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       5,
-       6,
-       11,
-       14,
-       21,
-       22,
-       37,
-       38,
-       64,
-       66,
-       5760,
-       5761,
-       8192,
-       8203,
-       8232,
-       8234,
-       8239,
-       8240,
-       8287,
-       8288,
-       12288,
-       12289
+       0x0,
+       0x5,
+       0x6,
+       0xB,
+       0xE,
+       0x15,
+       0x16,
+       0x25,
+       0x26,
+       0x40,
+       0x42,
+       0x1680,
+       0x1681,
+       0x2000,
+       0x200B,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x2030,
+       0x205F,
+       0x2060,
+       0x3000,
+       0x3001
 };
 
 static const UV XPosixAlnum_invlist[] = { /* for EBCDIC POSIX-BC */
@@ -37906,1289 +87964,1289 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC POSIX-BC */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       175,
-       192,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       225,
-       226,
-       234,
-       235,
-       250,
-       252,
-       253,
-       254,
-       255,
-       256,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       837,
-       838,
-       880,
-       885,
-       886,
-       888,
-       890,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1456,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1480,
-       1488,
-       1515,
-       1520,
-       1523,
-       1552,
-       1563,
-       1568,
-       1624,
-       1625,
-       1642,
-       1646,
-       1748,
-       1749,
-       1757,
-       1761,
-       1769,
-       1773,
-       1789,
-       1791,
-       1792,
-       1808,
-       1856,
-       1869,
-       1970,
-       1984,
-       2027,
-       2036,
-       2038,
-       2042,
-       2043,
-       2048,
-       2072,
-       2074,
-       2093,
-       2112,
-       2137,
-       2208,
-       2227,
-       2276,
-       2282,
-       2288,
-       2364,
-       2365,
-       2381,
-       2382,
-       2385,
-       2389,
-       2404,
-       2406,
-       2416,
-       2417,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2493,
-       2501,
-       2503,
-       2505,
-       2507,
-       2509,
-       2510,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2546,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2637,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2749,
-       2758,
-       2759,
-       2762,
-       2763,
-       2765,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2800,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2877,
-       2885,
-       2887,
-       2889,
-       2891,
-       2893,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2928,
-       2929,
-       2930,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3021,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3056,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3149,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3261,
-       3269,
-       3270,
-       3273,
-       3274,
-       3277,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3405,
-       3406,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3440,
-       3450,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3572,
-       3585,
-       3643,
-       3648,
-       3655,
-       3661,
-       3662,
-       3664,
-       3674,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3789,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3841,
-       3872,
-       3882,
-       3904,
-       3912,
-       3913,
-       3949,
-       3953,
-       3970,
-       3976,
-       3992,
-       3993,
-       4029,
-       4096,
-       4151,
-       4152,
-       4153,
-       4155,
-       4170,
-       4176,
-       4195,
-       4197,
-       4201,
-       4206,
-       4231,
-       4238,
-       4239,
-       4240,
-       4250,
-       4252,
-       4254,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4959,
-       4960,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5908,
-       5920,
-       5940,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6068,
-       6070,
-       6089,
-       6103,
-       6104,
-       6108,
-       6109,
-       6112,
-       6122,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6457,
-       6470,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6618,
-       6656,
-       6684,
-       6688,
-       6751,
-       6753,
-       6773,
-       6784,
-       6794,
-       6800,
-       6810,
-       6823,
-       6824,
-       6912,
-       6964,
-       6965,
-       6980,
-       6981,
-       6988,
-       6992,
-       7002,
-       7040,
-       7082,
-       7084,
-       7142,
-       7143,
-       7154,
-       7168,
-       7222,
-       7232,
-       7242,
-       7245,
-       7294,
-       7401,
-       7405,
-       7406,
-       7412,
-       7413,
-       7415,
-       7424,
-       7616,
-       7655,
-       7669,
-       7680,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11648,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11776,
-       11823,
-       11824,
-       12293,
-       12296,
-       12321,
-       12330,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42540,
-       42560,
-       42607,
-       42612,
-       42620,
-       42623,
-       42654,
-       42655,
-       42736,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43010,
-       43011,
-       43014,
-       43015,
-       43019,
-       43020,
-       43048,
-       43072,
-       43124,
-       43136,
-       43204,
-       43216,
-       43226,
-       43250,
-       43256,
-       43259,
-       43260,
-       43264,
-       43307,
-       43312,
-       43347,
-       43360,
-       43389,
-       43392,
-       43443,
-       43444,
-       43456,
-       43471,
-       43482,
-       43488,
-       43493,
-       43494,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43616,
-       43639,
-       43642,
-       43643,
-       43646,
-       43711,
-       43712,
-       43713,
-       43714,
-       43715,
-       43739,
-       43742,
-       43744,
-       43760,
-       43762,
-       43766,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44011,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65020,
-       65136,
-       65141,
-       65142,
-       65277,
-       65296,
-       65306,
-       65313,
-       65339,
-       65345,
-       65371,
-       65382,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66176,
-       66205,
-       66208,
-       66257,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68325,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69632,
-       69702,
-       69734,
-       69744,
-       69762,
-       69817,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69939,
-       69942,
-       69952,
-       69968,
-       70003,
-       70006,
-       70007,
-       70016,
-       70080,
-       70081,
-       70085,
-       70096,
-       70107,
-       70144,
-       70162,
-       70163,
-       70197,
-       70199,
-       70200,
-       70320,
-       70377,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70461,
-       70469,
-       70471,
-       70473,
-       70475,
-       70477,
-       70487,
-       70488,
-       70493,
-       70500,
-       70784,
-       70850,
-       70852,
-       70854,
-       70855,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71103,
-       71168,
-       71231,
-       71232,
-       71233,
-       71236,
-       71237,
-       71248,
-       71258,
-       71296,
-       71350,
-       71360,
-       71370,
-       71840,
-       71914,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92880,
-       92910,
-       92928,
-       92983,
-       92992,
-       92996,
-       93008,
-       93018,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94099,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113822,
-       113823,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xC0,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE1,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xFA,
+       0xFC,
+       0xFD,
+       0xFE,
+       0xFF,
+       0x100,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x345,
+       0x346,
+       0x370,
+       0x375,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x5B0,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x610,
+       0x61B,
+       0x620,
+       0x658,
+       0x659,
+       0x66A,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x6DD,
+       0x6E1,
+       0x6E9,
+       0x6ED,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x740,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x818,
+       0x81A,
+       0x82D,
+       0x840,
+       0x859,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x8EA,
+       0x8F0,
+       0x93C,
+       0x93D,
+       0x94D,
+       0x94E,
+       0x951,
+       0x955,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BD,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CD,
+       0x9CE,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4D,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABD,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACD,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3D,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4D,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCD,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4D,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBD,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCD,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4D,
+       0xD4E,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE3B,
+       0xE40,
+       0xE47,
+       0xE4D,
+       0xE4E,
+       0xE50,
+       0xE5A,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xECD,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF20,
+       0xF2A,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF82,
+       0xF88,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0x1000,
+       0x1037,
+       0x1038,
+       0x1039,
+       0x103B,
+       0x104A,
+       0x1050,
+       0x1063,
+       0x1065,
+       0x1069,
+       0x106E,
+       0x1087,
+       0x108E,
+       0x108F,
+       0x1090,
+       0x109A,
+       0x109C,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135F,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1714,
+       0x1720,
+       0x1734,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17B4,
+       0x17B6,
+       0x17C9,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DD,
+       0x17E0,
+       0x17EA,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x1939,
+       0x1946,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A1C,
+       0x1A20,
+       0x1A5F,
+       0x1A61,
+       0x1A75,
+       0x1A80,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA7,
+       0x1AA8,
+       0x1B00,
+       0x1B34,
+       0x1B35,
+       0x1B44,
+       0x1B45,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B80,
+       0x1BAA,
+       0x1BAC,
+       0x1BE6,
+       0x1BE7,
+       0x1BF2,
+       0x1C00,
+       0x1C36,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C7E,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF4,
+       0x1CF5,
+       0x1CF7,
+       0x1D00,
+       0x1DC0,
+       0x1DE7,
+       0x1DF5,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x302A,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA62C,
+       0xA640,
+       0xA66F,
+       0xA674,
+       0xA67C,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6F0,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA8C4,
+       0xA8D0,
+       0xA8DA,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA92B,
+       0xA930,
+       0xA953,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA9B3,
+       0xA9B4,
+       0xA9C0,
+       0xA9CF,
+       0xA9DA,
+       0xA9E0,
+       0xA9E5,
+       0xA9E6,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAA7B,
+       0xAA7E,
+       0xAABF,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xAAF6,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEB,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFF10,
+       0xFF1A,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11046,
+       0x11066,
+       0x11070,
+       0x11082,
+       0x110B9,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11133,
+       0x11136,
+       0x11140,
+       0x11150,
+       0x11173,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x111C0,
+       0x111C1,
+       0x111C5,
+       0x111D0,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x11235,
+       0x11237,
+       0x11238,
+       0x112B0,
+       0x112E9,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133D,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134D,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11480,
+       0x114C2,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115BF,
+       0x11600,
+       0x1163F,
+       0x11640,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B6,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16AD0,
+       0x16AEE,
+       0x16B00,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9E,
+       0x1BC9F,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E
 };
 
 static const UV XPosixAlpha_invlist[] = { /* for EBCDIC POSIX-BC */
@@ -39196,1231 +89254,1231 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC POSIX-BC */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       175,
-       192,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       225,
-       226,
-       234,
-       235,
-       240,
-       252,
-       253,
-       254,
-       255,
-       256,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       837,
-       838,
-       880,
-       885,
-       886,
-       888,
-       890,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1456,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1480,
-       1488,
-       1515,
-       1520,
-       1523,
-       1552,
-       1563,
-       1568,
-       1624,
-       1625,
-       1632,
-       1646,
-       1748,
-       1749,
-       1757,
-       1761,
-       1769,
-       1773,
-       1776,
-       1786,
-       1789,
-       1791,
-       1792,
-       1808,
-       1856,
-       1869,
-       1970,
-       1994,
-       2027,
-       2036,
-       2038,
-       2042,
-       2043,
-       2048,
-       2072,
-       2074,
-       2093,
-       2112,
-       2137,
-       2208,
-       2227,
-       2276,
-       2282,
-       2288,
-       2364,
-       2365,
-       2381,
-       2382,
-       2385,
-       2389,
-       2404,
-       2417,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2493,
-       2501,
-       2503,
-       2505,
-       2507,
-       2509,
-       2510,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2544,
-       2546,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2637,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2672,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2749,
-       2758,
-       2759,
-       2762,
-       2763,
-       2765,
-       2768,
-       2769,
-       2784,
-       2788,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2877,
-       2885,
-       2887,
-       2889,
-       2891,
-       2893,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2929,
-       2930,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3021,
-       3024,
-       3025,
-       3031,
-       3032,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3149,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3261,
-       3269,
-       3270,
-       3273,
-       3274,
-       3277,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3405,
-       3406,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3450,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3570,
-       3572,
-       3585,
-       3643,
-       3648,
-       3655,
-       3661,
-       3662,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3789,
-       3790,
-       3804,
-       3808,
-       3840,
-       3841,
-       3904,
-       3912,
-       3913,
-       3949,
-       3953,
-       3970,
-       3976,
-       3992,
-       3993,
-       4029,
-       4096,
-       4151,
-       4152,
-       4153,
-       4155,
-       4160,
-       4176,
-       4195,
-       4197,
-       4201,
-       4206,
-       4231,
-       4238,
-       4239,
-       4252,
-       4254,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4959,
-       4960,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5908,
-       5920,
-       5940,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6068,
-       6070,
-       6089,
-       6103,
-       6104,
-       6108,
-       6109,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6457,
-       6480,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6656,
-       6684,
-       6688,
-       6751,
-       6753,
-       6773,
-       6823,
-       6824,
-       6912,
-       6964,
-       6965,
-       6980,
-       6981,
-       6988,
-       7040,
-       7082,
-       7084,
-       7088,
-       7098,
-       7142,
-       7143,
-       7154,
-       7168,
-       7222,
-       7245,
-       7248,
-       7258,
-       7294,
-       7401,
-       7405,
-       7406,
-       7412,
-       7413,
-       7415,
-       7424,
-       7616,
-       7655,
-       7669,
-       7680,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11648,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11776,
-       11823,
-       11824,
-       12293,
-       12296,
-       12321,
-       12330,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42528,
-       42538,
-       42540,
-       42560,
-       42607,
-       42612,
-       42620,
-       42623,
-       42654,
-       42655,
-       42736,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43010,
-       43011,
-       43014,
-       43015,
-       43019,
-       43020,
-       43048,
-       43072,
-       43124,
-       43136,
-       43204,
-       43250,
-       43256,
-       43259,
-       43260,
-       43274,
-       43307,
-       43312,
-       43347,
-       43360,
-       43389,
-       43392,
-       43443,
-       43444,
-       43456,
-       43471,
-       43472,
-       43488,
-       43493,
-       43494,
-       43504,
-       43514,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43616,
-       43639,
-       43642,
-       43643,
-       43646,
-       43711,
-       43712,
-       43713,
-       43714,
-       43715,
-       43739,
-       43742,
-       43744,
-       43760,
-       43762,
-       43766,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44011,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65020,
-       65136,
-       65141,
-       65142,
-       65277,
-       65313,
-       65339,
-       65345,
-       65371,
-       65382,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66176,
-       66205,
-       66208,
-       66257,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68325,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69632,
-       69702,
-       69762,
-       69817,
-       69840,
-       69865,
-       69888,
-       69939,
-       69968,
-       70003,
-       70006,
-       70007,
-       70016,
-       70080,
-       70081,
-       70085,
-       70106,
-       70107,
-       70144,
-       70162,
-       70163,
-       70197,
-       70199,
-       70200,
-       70320,
-       70377,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70461,
-       70469,
-       70471,
-       70473,
-       70475,
-       70477,
-       70487,
-       70488,
-       70493,
-       70500,
-       70784,
-       70850,
-       70852,
-       70854,
-       70855,
-       70856,
-       71040,
-       71094,
-       71096,
-       71103,
-       71168,
-       71231,
-       71232,
-       71233,
-       71236,
-       71237,
-       71296,
-       71350,
-       71840,
-       71904,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92880,
-       92910,
-       92928,
-       92983,
-       92992,
-       92996,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94099,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113822,
-       113823,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       124928,
-       125125,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xC0,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE1,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFC,
+       0xFD,
+       0xFE,
+       0xFF,
+       0x100,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x345,
+       0x346,
+       0x370,
+       0x375,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x5B0,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x610,
+       0x61B,
+       0x620,
+       0x658,
+       0x659,
+       0x660,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x6DD,
+       0x6E1,
+       0x6E9,
+       0x6ED,
+       0x6F0,
+       0x6FA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x740,
+       0x74D,
+       0x7B2,
+       0x7CA,
+       0x7EB,
+       0x7F4,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x818,
+       0x81A,
+       0x82D,
+       0x840,
+       0x859,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x8EA,
+       0x8F0,
+       0x93C,
+       0x93D,
+       0x94D,
+       0x94E,
+       0x951,
+       0x955,
+       0x964,
+       0x971,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BD,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CD,
+       0x9CE,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9F0,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4D,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA70,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABD,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACD,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3D,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4D,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCD,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4D,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBD,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCD,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4D,
+       0xD4E,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE3B,
+       0xE40,
+       0xE47,
+       0xE4D,
+       0xE4E,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xECD,
+       0xECE,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF40,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF82,
+       0xF88,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0x1000,
+       0x1037,
+       0x1038,
+       0x1039,
+       0x103B,
+       0x1040,
+       0x1050,
+       0x1063,
+       0x1065,
+       0x1069,
+       0x106E,
+       0x1087,
+       0x108E,
+       0x108F,
+       0x109C,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135F,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1714,
+       0x1720,
+       0x1734,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17B4,
+       0x17B6,
+       0x17C9,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DD,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x1939,
+       0x1950,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x1A00,
+       0x1A1C,
+       0x1A20,
+       0x1A5F,
+       0x1A61,
+       0x1A75,
+       0x1AA7,
+       0x1AA8,
+       0x1B00,
+       0x1B34,
+       0x1B35,
+       0x1B44,
+       0x1B45,
+       0x1B4C,
+       0x1B80,
+       0x1BAA,
+       0x1BAC,
+       0x1BB0,
+       0x1BBA,
+       0x1BE6,
+       0x1BE7,
+       0x1BF2,
+       0x1C00,
+       0x1C36,
+       0x1C4D,
+       0x1C50,
+       0x1C5A,
+       0x1C7E,
+       0x1CE9,
+       0x1CED,
+       0x1CEE,
+       0x1CF4,
+       0x1CF5,
+       0x1CF7,
+       0x1D00,
+       0x1DC0,
+       0x1DE7,
+       0x1DF5,
+       0x1E00,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D80,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x302A,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA620,
+       0xA62A,
+       0xA62C,
+       0xA640,
+       0xA66F,
+       0xA674,
+       0xA67C,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6F0,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA802,
+       0xA803,
+       0xA806,
+       0xA807,
+       0xA80B,
+       0xA80C,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA8C4,
+       0xA8F2,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA90A,
+       0xA92B,
+       0xA930,
+       0xA953,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA9B3,
+       0xA9B4,
+       0xA9C0,
+       0xA9CF,
+       0xA9D0,
+       0xA9E0,
+       0xA9E5,
+       0xA9E6,
+       0xA9F0,
+       0xA9FA,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAA7B,
+       0xAA7E,
+       0xAABF,
+       0xAAC0,
+       0xAAC1,
+       0xAAC2,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xAAF6,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEB,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE5,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11046,
+       0x11082,
+       0x110B9,
+       0x110D0,
+       0x110E9,
+       0x11100,
+       0x11133,
+       0x11150,
+       0x11173,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x111C0,
+       0x111C1,
+       0x111C5,
+       0x111DA,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x11235,
+       0x11237,
+       0x11238,
+       0x112B0,
+       0x112E9,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133D,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134D,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11480,
+       0x114C2,
+       0x114C4,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115BF,
+       0x11600,
+       0x1163F,
+       0x11640,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11680,
+       0x116B6,
+       0x118A0,
+       0x118E0,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16AD0,
+       0x16AEE,
+       0x16B00,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F93,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9E,
+       0x1BC9F,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1E800,
+       0x1E8C5,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E
 };
 
 static const UV XPosixBlank_invlist[] = { /* for EBCDIC POSIX-BC */
@@ -40428,21 +90486,21 @@ static const UV XPosixBlank_invlist[] = { /* for EBCDIC POSIX-BC */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       5,
-       6,
-       64,
-       66,
-       5760,
-       5761,
-       8192,
-       8203,
-       8239,
-       8240,
-       8287,
-       8288,
-       12288,
-       12289
+       0x0,
+       0x5,
+       0x6,
+       0x40,
+       0x42,
+       0x1680,
+       0x1681,
+       0x2000,
+       0x200B,
+       0x202F,
+       0x2030,
+       0x205F,
+       0x2060,
+       0x3000,
+       0x3001
 };
 
 static const UV XPosixCntrl_invlist[] = { /* for EBCDIC POSIX-BC */
@@ -40450,10 +90508,10 @@ static const UV XPosixCntrl_invlist[] = { /* for EBCDIC POSIX-BC */
        148565664, /* Version and data structure type */
        0,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       64,
-       95,
-       96
+       0x0,
+       0x40,
+       0x5F,
+       0x60
 };
 
 static const UV XPosixDigit_invlist[] = { /* for EBCDIC POSIX-BC */
@@ -40461,107 +90519,107 @@ static const UV XPosixDigit_invlist[] = { /* for EBCDIC POSIX-BC */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       240,
-       250,
-       1632,
-       1642,
-       1776,
-       1786,
-       1984,
-       1994,
-       2406,
-       2416,
-       2534,
-       2544,
-       2662,
-       2672,
-       2790,
-       2800,
-       2918,
-       2928,
-       3046,
-       3056,
-       3174,
-       3184,
-       3302,
-       3312,
-       3430,
-       3440,
-       3558,
-       3568,
-       3664,
-       3674,
-       3792,
-       3802,
-       3872,
-       3882,
-       4160,
-       4170,
-       4240,
-       4250,
-       6112,
-       6122,
-       6160,
-       6170,
-       6470,
-       6480,
-       6608,
-       6618,
-       6784,
-       6794,
-       6800,
-       6810,
-       6992,
-       7002,
-       7088,
-       7098,
-       7232,
-       7242,
-       7248,
-       7258,
-       42528,
-       42538,
-       43216,
-       43226,
-       43264,
-       43274,
-       43472,
-       43482,
-       43504,
-       43514,
-       43600,
-       43610,
-       44016,
-       44026,
-       65296,
-       65306,
-       66720,
-       66730,
-       69734,
-       69744,
-       69872,
-       69882,
-       69942,
-       69952,
-       70096,
-       70106,
-       70384,
-       70394,
-       70864,
-       70874,
-       71248,
-       71258,
-       71360,
-       71370,
-       71904,
-       71914,
-       92768,
-       92778,
-       93008,
-       93018,
-       120782,
-       120832
+       0x0,
+       0xF0,
+       0xFA,
+       0x660,
+       0x66A,
+       0x6F0,
+       0x6FA,
+       0x7C0,
+       0x7CA,
+       0x966,
+       0x970,
+       0x9E6,
+       0x9F0,
+       0xA66,
+       0xA70,
+       0xAE6,
+       0xAF0,
+       0xB66,
+       0xB70,
+       0xBE6,
+       0xBF0,
+       0xC66,
+       0xC70,
+       0xCE6,
+       0xCF0,
+       0xD66,
+       0xD70,
+       0xDE6,
+       0xDF0,
+       0xE50,
+       0xE5A,
+       0xED0,
+       0xEDA,
+       0xF20,
+       0xF2A,
+       0x1040,
+       0x104A,
+       0x1090,
+       0x109A,
+       0x17E0,
+       0x17EA,
+       0x1810,
+       0x181A,
+       0x1946,
+       0x1950,
+       0x19D0,
+       0x19DA,
+       0x1A80,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1B50,
+       0x1B5A,
+       0x1BB0,
+       0x1BBA,
+       0x1C40,
+       0x1C4A,
+       0x1C50,
+       0x1C5A,
+       0xA620,
+       0xA62A,
+       0xA8D0,
+       0xA8DA,
+       0xA900,
+       0xA90A,
+       0xA9D0,
+       0xA9DA,
+       0xA9F0,
+       0xA9FA,
+       0xAA50,
+       0xAA5A,
+       0xABF0,
+       0xABFA,
+       0xFF10,
+       0xFF1A,
+       0x104A0,
+       0x104AA,
+       0x11066,
+       0x11070,
+       0x110F0,
+       0x110FA,
+       0x11136,
+       0x11140,
+       0x111D0,
+       0x111DA,
+       0x112F0,
+       0x112FA,
+       0x114D0,
+       0x114DA,
+       0x11650,
+       0x1165A,
+       0x116C0,
+       0x116CA,
+       0x118E0,
+       0x118EA,
+       0x16A60,
+       0x16A6A,
+       0x16B50,
+       0x16B5A,
+       0x1D7CE,
+       0x1D800
 };
 
 static const UV XPosixGraph_invlist[] = { /* for EBCDIC POSIX-BC */
@@ -40569,1217 +90627,1217 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC POSIX-BC */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       95,
-       96,
-       888,
-       890,
-       896,
-       900,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1328,
-       1329,
-       1367,
-       1369,
-       1376,
-       1377,
-       1416,
-       1417,
-       1419,
-       1421,
-       1424,
-       1425,
-       1480,
-       1488,
-       1515,
-       1520,
-       1525,
-       1536,
-       1565,
-       1566,
-       1806,
-       1807,
-       1867,
-       1869,
-       1970,
-       1984,
-       2043,
-       2048,
-       2094,
-       2096,
-       2111,
-       2112,
-       2140,
-       2142,
-       2143,
-       2208,
-       2227,
-       2276,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2492,
-       2501,
-       2503,
-       2505,
-       2507,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2556,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2620,
-       2621,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2638,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2748,
-       2758,
-       2759,
-       2762,
-       2763,
-       2766,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2802,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2876,
-       2885,
-       2887,
-       2889,
-       2891,
-       2894,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2936,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3022,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3067,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3150,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3192,
-       3200,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3260,
-       3269,
-       3270,
-       3273,
-       3274,
-       3278,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3446,
-       3449,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3530,
-       3531,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3573,
-       3585,
-       3643,
-       3647,
-       3676,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3784,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3912,
-       3913,
-       3949,
-       3953,
-       3992,
-       3993,
-       4029,
-       4030,
-       4045,
-       4046,
-       4059,
-       4096,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4957,
-       4989,
-       4992,
-       5018,
-       5024,
-       5109,
-       5120,
-       5760,
-       5761,
-       5789,
-       5792,
-       5881,
-       5888,
-       5901,
-       5902,
-       5909,
-       5920,
-       5943,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6110,
-       6112,
-       6122,
-       6128,
-       6138,
-       6144,
-       6159,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6460,
-       6464,
-       6465,
-       6468,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6619,
-       6622,
-       6684,
-       6686,
-       6751,
-       6752,
-       6781,
-       6783,
-       6794,
-       6800,
-       6810,
-       6816,
-       6830,
-       6832,
-       6847,
-       6912,
-       6988,
-       6992,
-       7037,
-       7040,
-       7156,
-       7164,
-       7224,
-       7227,
-       7242,
-       7245,
-       7296,
-       7360,
-       7368,
-       7376,
-       7415,
-       7416,
-       7418,
-       7424,
-       7670,
-       7676,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8133,
-       8134,
-       8148,
-       8150,
-       8156,
-       8157,
-       8176,
-       8178,
-       8181,
-       8182,
-       8191,
-       8203,
-       8232,
-       8234,
-       8239,
-       8240,
-       8287,
-       8288,
-       8293,
-       8294,
-       8306,
-       8308,
-       8335,
-       8336,
-       8349,
-       8352,
-       8382,
-       8400,
-       8433,
-       8448,
-       8586,
-       8592,
-       9211,
-       9216,
-       9255,
-       9280,
-       9291,
-       9312,
-       11124,
-       11126,
-       11158,
-       11160,
-       11194,
-       11197,
-       11209,
-       11210,
-       11218,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11508,
-       11513,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11633,
-       11647,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11843,
-       11904,
-       11930,
-       11931,
-       12020,
-       12032,
-       12246,
-       12272,
-       12284,
-       12289,
-       12352,
-       12353,
-       12439,
-       12441,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12688,
-       12731,
-       12736,
-       12772,
-       12784,
-       12831,
-       12832,
-       13055,
-       13056,
-       19894,
-       19904,
-       40909,
-       40960,
-       42125,
-       42128,
-       42183,
-       42192,
-       42540,
-       42560,
-       42654,
-       42655,
-       42744,
-       42752,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43052,
-       43056,
-       43066,
-       43072,
-       43128,
-       43136,
-       43205,
-       43214,
-       43226,
-       43232,
-       43260,
-       43264,
-       43348,
-       43359,
-       43389,
-       43392,
-       43470,
-       43471,
-       43482,
-       43486,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43612,
-       43715,
-       43739,
-       43767,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43872,
-       43876,
-       43878,
-       43968,
-       44014,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       57344,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64450,
-       64467,
-       64832,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65022,
-       65024,
-       65050,
-       65056,
-       65070,
-       65072,
-       65107,
-       65108,
-       65127,
-       65128,
-       65132,
-       65136,
-       65141,
-       65142,
-       65277,
-       65279,
-       65280,
-       65281,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65504,
-       65511,
-       65512,
-       65519,
-       65529,
-       65534,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65792,
-       65795,
-       65799,
-       65844,
-       65847,
-       65933,
-       65936,
-       65948,
-       65952,
-       65953,
-       66000,
-       66046,
-       66176,
-       66205,
-       66208,
-       66257,
-       66272,
-       66300,
-       66304,
-       66340,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66463,
-       66500,
-       66504,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       66927,
-       66928,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67671,
-       67743,
-       67751,
-       67760,
-       67840,
-       67868,
-       67871,
-       67898,
-       67903,
-       67904,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68152,
-       68155,
-       68159,
-       68168,
-       68176,
-       68185,
-       68192,
-       68256,
-       68288,
-       68327,
-       68331,
-       68343,
-       68352,
-       68406,
-       68409,
-       68438,
-       68440,
-       68467,
-       68472,
-       68498,
-       68505,
-       68509,
-       68521,
-       68528,
-       68608,
-       68681,
-       69216,
-       69247,
-       69632,
-       69710,
-       69714,
-       69744,
-       69759,
-       69826,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69941,
-       69942,
-       69956,
-       69968,
-       70007,
-       70016,
-       70089,
-       70093,
-       70094,
-       70096,
-       70107,
-       70113,
-       70133,
-       70144,
-       70162,
-       70163,
-       70206,
-       70320,
-       70379,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70460,
-       70469,
-       70471,
-       70473,
-       70475,
-       70478,
-       70487,
-       70488,
-       70493,
-       70500,
-       70502,
-       70509,
-       70512,
-       70517,
-       70784,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71114,
-       71168,
-       71237,
-       71248,
-       71258,
-       71296,
-       71352,
-       71360,
-       71370,
-       71840,
-       71923,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       74864,
-       74869,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92782,
-       92784,
-       92880,
-       92910,
-       92912,
-       92918,
-       92928,
-       92998,
-       93008,
-       93018,
-       93019,
-       93026,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94095,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113820,
-       113828,
-       118784,
-       119030,
-       119040,
-       119079,
-       119081,
-       119262,
-       119296,
-       119366,
-       119552,
-       119639,
-       119648,
-       119666,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       125127,
-       125143,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       126704,
-       126706,
-       126976,
-       127020,
-       127024,
-       127124,
-       127136,
-       127151,
-       127153,
-       127168,
-       127169,
-       127184,
-       127185,
-       127222,
-       127232,
-       127245,
-       127248,
-       127279,
-       127280,
-       127340,
-       127344,
-       127387,
-       127462,
-       127491,
-       127504,
-       127547,
-       127552,
-       127561,
-       127568,
-       127570,
-       127744,
-       127789,
-       127792,
-       127870,
-       127872,
-       127951,
-       127956,
-       127992,
-       128000,
-       128255,
-       128256,
-       128331,
-       128336,
-       128378,
-       128379,
-       128420,
-       128421,
-       128579,
-       128581,
-       128720,
-       128736,
-       128749,
-       128752,
-       128756,
-       128768,
-       128884,
-       128896,
-       128981,
-       129024,
-       129036,
-       129040,
-       129096,
-       129104,
-       129114,
-       129120,
-       129160,
-       129168,
-       129198,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102,
-       917505,
-       917506,
-       917536,
-       917632,
-       917760,
-       918000,
-       983040,
-       1048574,
-       1048576,
-       1114110
+       0x0,
+       0x42,
+       0x5F,
+       0x60,
+       0x378,
+       0x37A,
+       0x380,
+       0x384,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x560,
+       0x561,
+       0x588,
+       0x589,
+       0x58B,
+       0x58D,
+       0x590,
+       0x591,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F5,
+       0x600,
+       0x61D,
+       0x61E,
+       0x70E,
+       0x70F,
+       0x74B,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7FB,
+       0x800,
+       0x82E,
+       0x830,
+       0x83F,
+       0x840,
+       0x85C,
+       0x85E,
+       0x85F,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9FC,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF2,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB78,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBFB,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC78,
+       0xC80,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD76,
+       0xD79,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF5,
+       0xE01,
+       0xE3B,
+       0xE3F,
+       0xE5C,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFBE,
+       0xFCD,
+       0xFCE,
+       0xFDB,
+       0x1000,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x137D,
+       0x1380,
+       0x139A,
+       0x13A0,
+       0x13F5,
+       0x1400,
+       0x1680,
+       0x1681,
+       0x169D,
+       0x16A0,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1715,
+       0x1720,
+       0x1737,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x17F0,
+       0x17FA,
+       0x1800,
+       0x180F,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1940,
+       0x1941,
+       0x1944,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DB,
+       0x19DE,
+       0x1A1C,
+       0x1A1E,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA0,
+       0x1AAE,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B4C,
+       0x1B50,
+       0x1B7D,
+       0x1B80,
+       0x1BF4,
+       0x1BFC,
+       0x1C38,
+       0x1C3B,
+       0x1C4A,
+       0x1C4D,
+       0x1C80,
+       0x1CC0,
+       0x1CC8,
+       0x1CD0,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DF6,
+       0x1DFC,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FC5,
+       0x1FC6,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FDD,
+       0x1FF0,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFF,
+       0x200B,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x2030,
+       0x205F,
+       0x2060,
+       0x2065,
+       0x2066,
+       0x2072,
+       0x2074,
+       0x208F,
+       0x2090,
+       0x209D,
+       0x20A0,
+       0x20BE,
+       0x20D0,
+       0x20F1,
+       0x2100,
+       0x218A,
+       0x2190,
+       0x23FB,
+       0x2400,
+       0x2427,
+       0x2440,
+       0x244B,
+       0x2460,
+       0x2B74,
+       0x2B76,
+       0x2B96,
+       0x2B98,
+       0x2BBA,
+       0x2BBD,
+       0x2BC9,
+       0x2BCA,
+       0x2BD2,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CF4,
+       0x2CF9,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D71,
+       0x2D7F,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E43,
+       0x2E80,
+       0x2E9A,
+       0x2E9B,
+       0x2EF4,
+       0x2F00,
+       0x2FD6,
+       0x2FF0,
+       0x2FFC,
+       0x3001,
+       0x3040,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x3190,
+       0x31BB,
+       0x31C0,
+       0x31E4,
+       0x31F0,
+       0x321F,
+       0x3220,
+       0x32FF,
+       0x3300,
+       0x4DB6,
+       0x4DC0,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA490,
+       0xA4C7,
+       0xA4D0,
+       0xA62C,
+       0xA640,
+       0xA69E,
+       0xA69F,
+       0xA6F8,
+       0xA700,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA82C,
+       0xA830,
+       0xA83A,
+       0xA840,
+       0xA878,
+       0xA880,
+       0xA8C5,
+       0xA8CE,
+       0xA8DA,
+       0xA8E0,
+       0xA8FC,
+       0xA900,
+       0xA954,
+       0xA95F,
+       0xA97D,
+       0xA980,
+       0xA9CE,
+       0xA9CF,
+       0xA9DA,
+       0xA9DE,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA5C,
+       0xAAC3,
+       0xAADB,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xE000,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBC2,
+       0xFBD3,
+       0xFD40,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFE,
+       0xFE00,
+       0xFE1A,
+       0xFE20,
+       0xFE2E,
+       0xFE30,
+       0xFE53,
+       0xFE54,
+       0xFE67,
+       0xFE68,
+       0xFE6C,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFEFF,
+       0xFF00,
+       0xFF01,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0xFFE0,
+       0xFFE7,
+       0xFFE8,
+       0xFFEF,
+       0xFFF9,
+       0xFFFE,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10100,
+       0x10103,
+       0x10107,
+       0x10134,
+       0x10137,
+       0x1018D,
+       0x10190,
+       0x1019C,
+       0x101A0,
+       0x101A1,
+       0x101D0,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102FC,
+       0x10300,
+       0x10324,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x1039F,
+       0x103C4,
+       0x103C8,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x1056F,
+       0x10570,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10857,
+       0x1089F,
+       0x108A7,
+       0x108B0,
+       0x10900,
+       0x1091C,
+       0x1091F,
+       0x1093A,
+       0x1093F,
+       0x10940,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A48,
+       0x10A50,
+       0x10A59,
+       0x10A60,
+       0x10AA0,
+       0x10AC0,
+       0x10AE7,
+       0x10AEB,
+       0x10AF7,
+       0x10B00,
+       0x10B36,
+       0x10B39,
+       0x10B56,
+       0x10B58,
+       0x10B73,
+       0x10B78,
+       0x10B92,
+       0x10B99,
+       0x10B9D,
+       0x10BA9,
+       0x10BB0,
+       0x10C00,
+       0x10C49,
+       0x10E60,
+       0x10E7F,
+       0x11000,
+       0x1104E,
+       0x11052,
+       0x11070,
+       0x1107F,
+       0x110C2,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11135,
+       0x11136,
+       0x11144,
+       0x11150,
+       0x11177,
+       0x11180,
+       0x111C9,
+       0x111CD,
+       0x111CE,
+       0x111D0,
+       0x111DB,
+       0x111E1,
+       0x111F5,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1123E,
+       0x112B0,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115CA,
+       0x11600,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118F3,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x12470,
+       0x12475,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16A6E,
+       0x16A70,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF6,
+       0x16B00,
+       0x16B46,
+       0x16B50,
+       0x16B5A,
+       0x16B5B,
+       0x16B62,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F8F,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9C,
+       0x1BCA4,
+       0x1D000,
+       0x1D0F6,
+       0x1D100,
+       0x1D127,
+       0x1D129,
+       0x1D1DE,
+       0x1D200,
+       0x1D246,
+       0x1D300,
+       0x1D357,
+       0x1D360,
+       0x1D372,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8C7,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1EEF0,
+       0x1EEF2,
+       0x1F000,
+       0x1F02C,
+       0x1F030,
+       0x1F094,
+       0x1F0A0,
+       0x1F0AF,
+       0x1F0B1,
+       0x1F0C0,
+       0x1F0C1,
+       0x1F0D0,
+       0x1F0D1,
+       0x1F0F6,
+       0x1F100,
+       0x1F10D,
+       0x1F110,
+       0x1F12F,
+       0x1F130,
+       0x1F16C,
+       0x1F170,
+       0x1F19B,
+       0x1F1E6,
+       0x1F203,
+       0x1F210,
+       0x1F23B,
+       0x1F240,
+       0x1F249,
+       0x1F250,
+       0x1F252,
+       0x1F300,
+       0x1F32D,
+       0x1F330,
+       0x1F37E,
+       0x1F380,
+       0x1F3CF,
+       0x1F3D4,
+       0x1F3F8,
+       0x1F400,
+       0x1F4FF,
+       0x1F500,
+       0x1F54B,
+       0x1F550,
+       0x1F57A,
+       0x1F57B,
+       0x1F5A4,
+       0x1F5A5,
+       0x1F643,
+       0x1F645,
+       0x1F6D0,
+       0x1F6E0,
+       0x1F6ED,
+       0x1F6F0,
+       0x1F6F4,
+       0x1F700,
+       0x1F774,
+       0x1F780,
+       0x1F7D5,
+       0x1F800,
+       0x1F80C,
+       0x1F810,
+       0x1F848,
+       0x1F850,
+       0x1F85A,
+       0x1F860,
+       0x1F888,
+       0x1F890,
+       0x1F8AE,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0001,
+       0xE0002,
+       0xE0020,
+       0xE0080,
+       0xE0100,
+       0xE01F0,
+       0xF0000,
+       0xFFFFE,
+       0x100000,
+       0x10FFFE
 };
 
 static const UV XPosixLower_invlist[] = { /* for EBCDIC POSIX-BC */
@@ -41787,1285 +91845,1285 @@ static const UV XPosixLower_invlist[] = { /* for EBCDIC POSIX-BC */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       112,
-       113,
-       129,
-       138,
-       140,
-       143,
-       145,
-       157,
-       160,
-       161,
-       162,
-       170,
-       192,
-       193,
-       203,
-       208,
-       219,
-       221,
-       222,
-       224,
-       257,
-       258,
-       259,
-       260,
-       261,
-       262,
-       263,
-       264,
-       265,
-       266,
-       267,
-       268,
-       269,
-       270,
-       271,
-       272,
-       273,
-       274,
-       275,
-       276,
-       277,
-       278,
-       279,
-       280,
-       281,
-       282,
-       283,
-       284,
-       285,
-       286,
-       287,
-       288,
-       289,
-       290,
-       291,
-       292,
-       293,
-       294,
-       295,
-       296,
-       297,
-       298,
-       299,
-       300,
-       301,
-       302,
-       303,
-       304,
-       305,
-       306,
-       307,
-       308,
-       309,
-       310,
-       311,
-       313,
-       314,
-       315,
-       316,
-       317,
-       318,
-       319,
-       320,
-       321,
-       322,
-       323,
-       324,
-       325,
-       326,
-       327,
-       328,
-       330,
-       331,
-       332,
-       333,
-       334,
-       335,
-       336,
-       337,
-       338,
-       339,
-       340,
-       341,
-       342,
-       343,
-       344,
-       345,
-       346,
-       347,
-       348,
-       349,
-       350,
-       351,
-       352,
-       353,
-       354,
-       355,
-       356,
-       357,
-       358,
-       359,
-       360,
-       361,
-       362,
-       363,
-       364,
-       365,
-       366,
-       367,
-       368,
-       369,
-       370,
-       371,
-       372,
-       373,
-       374,
-       375,
-       376,
-       378,
-       379,
-       380,
-       381,
-       382,
-       385,
-       387,
-       388,
-       389,
-       390,
-       392,
-       393,
-       396,
-       398,
-       402,
-       403,
-       405,
-       406,
-       409,
-       412,
-       414,
-       415,
-       417,
-       418,
-       419,
-       420,
-       421,
-       422,
-       424,
-       425,
-       426,
-       428,
-       429,
-       430,
-       432,
-       433,
-       436,
-       437,
-       438,
-       439,
-       441,
-       443,
-       445,
-       448,
-       454,
-       455,
-       457,
-       458,
-       460,
-       461,
-       462,
-       463,
-       464,
-       465,
-       466,
-       467,
-       468,
-       469,
-       470,
-       471,
-       472,
-       473,
-       474,
-       475,
-       476,
-       478,
-       479,
-       480,
-       481,
-       482,
-       483,
-       484,
-       485,
-       486,
-       487,
-       488,
-       489,
-       490,
-       491,
-       492,
-       493,
-       494,
-       495,
-       497,
-       499,
-       500,
-       501,
-       502,
-       505,
-       506,
-       507,
-       508,
-       509,
-       510,
-       511,
-       512,
-       513,
-       514,
-       515,
-       516,
-       517,
-       518,
-       519,
-       520,
-       521,
-       522,
-       523,
-       524,
-       525,
-       526,
-       527,
-       528,
-       529,
-       530,
-       531,
-       532,
-       533,
-       534,
-       535,
-       536,
-       537,
-       538,
-       539,
-       540,
-       541,
-       542,
-       543,
-       544,
-       545,
-       546,
-       547,
-       548,
-       549,
-       550,
-       551,
-       552,
-       553,
-       554,
-       555,
-       556,
-       557,
-       558,
-       559,
-       560,
-       561,
-       562,
-       563,
-       570,
-       572,
-       573,
-       575,
-       577,
-       578,
-       579,
-       583,
-       584,
-       585,
-       586,
-       587,
-       588,
-       589,
-       590,
-       591,
-       660,
-       661,
-       697,
-       704,
-       706,
-       736,
-       741,
-       837,
-       838,
-       881,
-       882,
-       883,
-       884,
-       887,
-       888,
-       890,
-       894,
-       912,
-       913,
-       940,
-       975,
-       976,
-       978,
-       981,
-       984,
-       985,
-       986,
-       987,
-       988,
-       989,
-       990,
-       991,
-       992,
-       993,
-       994,
-       995,
-       996,
-       997,
-       998,
-       999,
-       1000,
-       1001,
-       1002,
-       1003,
-       1004,
-       1005,
-       1006,
-       1007,
-       1012,
-       1013,
-       1014,
-       1016,
-       1017,
-       1019,
-       1021,
-       1072,
-       1120,
-       1121,
-       1122,
-       1123,
-       1124,
-       1125,
-       1126,
-       1127,
-       1128,
-       1129,
-       1130,
-       1131,
-       1132,
-       1133,
-       1134,
-       1135,
-       1136,
-       1137,
-       1138,
-       1139,
-       1140,
-       1141,
-       1142,
-       1143,
-       1144,
-       1145,
-       1146,
-       1147,
-       1148,
-       1149,
-       1150,
-       1151,
-       1152,
-       1153,
-       1154,
-       1163,
-       1164,
-       1165,
-       1166,
-       1167,
-       1168,
-       1169,
-       1170,
-       1171,
-       1172,
-       1173,
-       1174,
-       1175,
-       1176,
-       1177,
-       1178,
-       1179,
-       1180,
-       1181,
-       1182,
-       1183,
-       1184,
-       1185,
-       1186,
-       1187,
-       1188,
-       1189,
-       1190,
-       1191,
-       1192,
-       1193,
-       1194,
-       1195,
-       1196,
-       1197,
-       1198,
-       1199,
-       1200,
-       1201,
-       1202,
-       1203,
-       1204,
-       1205,
-       1206,
-       1207,
-       1208,
-       1209,
-       1210,
-       1211,
-       1212,
-       1213,
-       1214,
-       1215,
-       1216,
-       1218,
-       1219,
-       1220,
-       1221,
-       1222,
-       1223,
-       1224,
-       1225,
-       1226,
-       1227,
-       1228,
-       1229,
-       1230,
-       1232,
-       1233,
-       1234,
-       1235,
-       1236,
-       1237,
-       1238,
-       1239,
-       1240,
-       1241,
-       1242,
-       1243,
-       1244,
-       1245,
-       1246,
-       1247,
-       1248,
-       1249,
-       1250,
-       1251,
-       1252,
-       1253,
-       1254,
-       1255,
-       1256,
-       1257,
-       1258,
-       1259,
-       1260,
-       1261,
-       1262,
-       1263,
-       1264,
-       1265,
-       1266,
-       1267,
-       1268,
-       1269,
-       1270,
-       1271,
-       1272,
-       1273,
-       1274,
-       1275,
-       1276,
-       1277,
-       1278,
-       1279,
-       1280,
-       1281,
-       1282,
-       1283,
-       1284,
-       1285,
-       1286,
-       1287,
-       1288,
-       1289,
-       1290,
-       1291,
-       1292,
-       1293,
-       1294,
-       1295,
-       1296,
-       1297,
-       1298,
-       1299,
-       1300,
-       1301,
-       1302,
-       1303,
-       1304,
-       1305,
-       1306,
-       1307,
-       1308,
-       1309,
-       1310,
-       1311,
-       1312,
-       1313,
-       1314,
-       1315,
-       1316,
-       1317,
-       1318,
-       1319,
-       1320,
-       1321,
-       1322,
-       1323,
-       1324,
-       1325,
-       1326,
-       1327,
-       1328,
-       1377,
-       1416,
-       7424,
-       7616,
-       7681,
-       7682,
-       7683,
-       7684,
-       7685,
-       7686,
-       7687,
-       7688,
-       7689,
-       7690,
-       7691,
-       7692,
-       7693,
-       7694,
-       7695,
-       7696,
-       7697,
-       7698,
-       7699,
-       7700,
-       7701,
-       7702,
-       7703,
-       7704,
-       7705,
-       7706,
-       7707,
-       7708,
-       7709,
-       7710,
-       7711,
-       7712,
-       7713,
-       7714,
-       7715,
-       7716,
-       7717,
-       7718,
-       7719,
-       7720,
-       7721,
-       7722,
-       7723,
-       7724,
-       7725,
-       7726,
-       7727,
-       7728,
-       7729,
-       7730,
-       7731,
-       7732,
-       7733,
-       7734,
-       7735,
-       7736,
-       7737,
-       7738,
-       7739,
-       7740,
-       7741,
-       7742,
-       7743,
-       7744,
-       7745,
-       7746,
-       7747,
-       7748,
-       7749,
-       7750,
-       7751,
-       7752,
-       7753,
-       7754,
-       7755,
-       7756,
-       7757,
-       7758,
-       7759,
-       7760,
-       7761,
-       7762,
-       7763,
-       7764,
-       7765,
-       7766,
-       7767,
-       7768,
-       7769,
-       7770,
-       7771,
-       7772,
-       7773,
-       7774,
-       7775,
-       7776,
-       7777,
-       7778,
-       7779,
-       7780,
-       7781,
-       7782,
-       7783,
-       7784,
-       7785,
-       7786,
-       7787,
-       7788,
-       7789,
-       7790,
-       7791,
-       7792,
-       7793,
-       7794,
-       7795,
-       7796,
-       7797,
-       7798,
-       7799,
-       7800,
-       7801,
-       7802,
-       7803,
-       7804,
-       7805,
-       7806,
-       7807,
-       7808,
-       7809,
-       7810,
-       7811,
-       7812,
-       7813,
-       7814,
-       7815,
-       7816,
-       7817,
-       7818,
-       7819,
-       7820,
-       7821,
-       7822,
-       7823,
-       7824,
-       7825,
-       7826,
-       7827,
-       7828,
-       7829,
-       7838,
-       7839,
-       7840,
-       7841,
-       7842,
-       7843,
-       7844,
-       7845,
-       7846,
-       7847,
-       7848,
-       7849,
-       7850,
-       7851,
-       7852,
-       7853,
-       7854,
-       7855,
-       7856,
-       7857,
-       7858,
-       7859,
-       7860,
-       7861,
-       7862,
-       7863,
-       7864,
-       7865,
-       7866,
-       7867,
-       7868,
-       7869,
-       7870,
-       7871,
-       7872,
-       7873,
-       7874,
-       7875,
-       7876,
-       7877,
-       7878,
-       7879,
-       7880,
-       7881,
-       7882,
-       7883,
-       7884,
-       7885,
-       7886,
-       7887,
-       7888,
-       7889,
-       7890,
-       7891,
-       7892,
-       7893,
-       7894,
-       7895,
-       7896,
-       7897,
-       7898,
-       7899,
-       7900,
-       7901,
-       7902,
-       7903,
-       7904,
-       7905,
-       7906,
-       7907,
-       7908,
-       7909,
-       7910,
-       7911,
-       7912,
-       7913,
-       7914,
-       7915,
-       7916,
-       7917,
-       7918,
-       7919,
-       7920,
-       7921,
-       7922,
-       7923,
-       7924,
-       7925,
-       7926,
-       7927,
-       7928,
-       7929,
-       7930,
-       7931,
-       7932,
-       7933,
-       7934,
-       7935,
-       7944,
-       7952,
-       7958,
-       7968,
-       7976,
-       7984,
-       7992,
-       8000,
-       8006,
-       8016,
-       8024,
-       8032,
-       8040,
-       8048,
-       8062,
-       8064,
-       8072,
-       8080,
-       8088,
-       8096,
-       8104,
-       8112,
-       8117,
-       8118,
-       8120,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8136,
-       8144,
-       8148,
-       8150,
-       8152,
-       8160,
-       8168,
-       8178,
-       8181,
-       8182,
-       8184,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8458,
-       8459,
-       8462,
-       8464,
-       8467,
-       8468,
-       8495,
-       8496,
-       8500,
-       8501,
-       8505,
-       8506,
-       8508,
-       8510,
-       8518,
-       8522,
-       8526,
-       8527,
-       8560,
-       8576,
-       8580,
-       8581,
-       9424,
-       9450,
-       11312,
-       11359,
-       11361,
-       11362,
-       11365,
-       11367,
-       11368,
-       11369,
-       11370,
-       11371,
-       11372,
-       11373,
-       11377,
-       11378,
-       11379,
-       11381,
-       11382,
-       11390,
-       11393,
-       11394,
-       11395,
-       11396,
-       11397,
-       11398,
-       11399,
-       11400,
-       11401,
-       11402,
-       11403,
-       11404,
-       11405,
-       11406,
-       11407,
-       11408,
-       11409,
-       11410,
-       11411,
-       11412,
-       11413,
-       11414,
-       11415,
-       11416,
-       11417,
-       11418,
-       11419,
-       11420,
-       11421,
-       11422,
-       11423,
-       11424,
-       11425,
-       11426,
-       11427,
-       11428,
-       11429,
-       11430,
-       11431,
-       11432,
-       11433,
-       11434,
-       11435,
-       11436,
-       11437,
-       11438,
-       11439,
-       11440,
-       11441,
-       11442,
-       11443,
-       11444,
-       11445,
-       11446,
-       11447,
-       11448,
-       11449,
-       11450,
-       11451,
-       11452,
-       11453,
-       11454,
-       11455,
-       11456,
-       11457,
-       11458,
-       11459,
-       11460,
-       11461,
-       11462,
-       11463,
-       11464,
-       11465,
-       11466,
-       11467,
-       11468,
-       11469,
-       11470,
-       11471,
-       11472,
-       11473,
-       11474,
-       11475,
-       11476,
-       11477,
-       11478,
-       11479,
-       11480,
-       11481,
-       11482,
-       11483,
-       11484,
-       11485,
-       11486,
-       11487,
-       11488,
-       11489,
-       11490,
-       11491,
-       11493,
-       11500,
-       11501,
-       11502,
-       11503,
-       11507,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       42561,
-       42562,
-       42563,
-       42564,
-       42565,
-       42566,
-       42567,
-       42568,
-       42569,
-       42570,
-       42571,
-       42572,
-       42573,
-       42574,
-       42575,
-       42576,
-       42577,
-       42578,
-       42579,
-       42580,
-       42581,
-       42582,
-       42583,
-       42584,
-       42585,
-       42586,
-       42587,
-       42588,
-       42589,
-       42590,
-       42591,
-       42592,
-       42593,
-       42594,
-       42595,
-       42596,
-       42597,
-       42598,
-       42599,
-       42600,
-       42601,
-       42602,
-       42603,
-       42604,
-       42605,
-       42606,
-       42625,
-       42626,
-       42627,
-       42628,
-       42629,
-       42630,
-       42631,
-       42632,
-       42633,
-       42634,
-       42635,
-       42636,
-       42637,
-       42638,
-       42639,
-       42640,
-       42641,
-       42642,
-       42643,
-       42644,
-       42645,
-       42646,
-       42647,
-       42648,
-       42649,
-       42650,
-       42651,
-       42654,
-       42787,
-       42788,
-       42789,
-       42790,
-       42791,
-       42792,
-       42793,
-       42794,
-       42795,
-       42796,
-       42797,
-       42798,
-       42799,
-       42802,
-       42803,
-       42804,
-       42805,
-       42806,
-       42807,
-       42808,
-       42809,
-       42810,
-       42811,
-       42812,
-       42813,
-       42814,
-       42815,
-       42816,
-       42817,
-       42818,
-       42819,
-       42820,
-       42821,
-       42822,
-       42823,
-       42824,
-       42825,
-       42826,
-       42827,
-       42828,
-       42829,
-       42830,
-       42831,
-       42832,
-       42833,
-       42834,
-       42835,
-       42836,
-       42837,
-       42838,
-       42839,
-       42840,
-       42841,
-       42842,
-       42843,
-       42844,
-       42845,
-       42846,
-       42847,
-       42848,
-       42849,
-       42850,
-       42851,
-       42852,
-       42853,
-       42854,
-       42855,
-       42856,
-       42857,
-       42858,
-       42859,
-       42860,
-       42861,
-       42862,
-       42863,
-       42873,
-       42874,
-       42875,
-       42876,
-       42877,
-       42879,
-       42880,
-       42881,
-       42882,
-       42883,
-       42884,
-       42885,
-       42886,
-       42887,
-       42888,
-       42892,
-       42893,
-       42894,
-       42895,
-       42897,
-       42898,
-       42899,
-       42902,
-       42903,
-       42904,
-       42905,
-       42906,
-       42907,
-       42908,
-       42909,
-       42910,
-       42911,
-       42912,
-       42913,
-       42914,
-       42915,
-       42916,
-       42917,
-       42918,
-       42919,
-       42920,
-       42921,
-       42922,
-       43000,
-       43003,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       64256,
-       64263,
-       64275,
-       64280,
-       65345,
-       65371,
-       66600,
-       66640,
-       71872,
-       71904,
-       119834,
-       119860,
-       119886,
-       119893,
-       119894,
-       119912,
-       119938,
-       119964,
-       119990,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120016,
-       120042,
-       120068,
-       120094,
-       120120,
-       120146,
-       120172,
-       120198,
-       120224,
-       120250,
-       120276,
-       120302,
-       120328,
-       120354,
-       120380,
-       120406,
-       120432,
-       120458,
-       120486,
-       120514,
-       120539,
-       120540,
-       120546,
-       120572,
-       120597,
-       120598,
-       120604,
-       120630,
-       120655,
-       120656,
-       120662,
-       120688,
-       120713,
-       120714,
-       120720,
-       120746,
-       120771,
-       120772,
-       120778,
-       120779,
-       120780
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x70,
+       0x71,
+       0x81,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xC0,
+       0xC1,
+       0xCB,
+       0xD0,
+       0xDB,
+       0xDD,
+       0xDE,
+       0xE0,
+       0x101,
+       0x102,
+       0x103,
+       0x104,
+       0x105,
+       0x106,
+       0x107,
+       0x108,
+       0x109,
+       0x10A,
+       0x10B,
+       0x10C,
+       0x10D,
+       0x10E,
+       0x10F,
+       0x110,
+       0x111,
+       0x112,
+       0x113,
+       0x114,
+       0x115,
+       0x116,
+       0x117,
+       0x118,
+       0x119,
+       0x11A,
+       0x11B,
+       0x11C,
+       0x11D,
+       0x11E,
+       0x11F,
+       0x120,
+       0x121,
+       0x122,
+       0x123,
+       0x124,
+       0x125,
+       0x126,
+       0x127,
+       0x128,
+       0x129,
+       0x12A,
+       0x12B,
+       0x12C,
+       0x12D,
+       0x12E,
+       0x12F,
+       0x130,
+       0x131,
+       0x132,
+       0x133,
+       0x134,
+       0x135,
+       0x136,
+       0x137,
+       0x139,
+       0x13A,
+       0x13B,
+       0x13C,
+       0x13D,
+       0x13E,
+       0x13F,
+       0x140,
+       0x141,
+       0x142,
+       0x143,
+       0x144,
+       0x145,
+       0x146,
+       0x147,
+       0x148,
+       0x14A,
+       0x14B,
+       0x14C,
+       0x14D,
+       0x14E,
+       0x14F,
+       0x150,
+       0x151,
+       0x152,
+       0x153,
+       0x154,
+       0x155,
+       0x156,
+       0x157,
+       0x158,
+       0x159,
+       0x15A,
+       0x15B,
+       0x15C,
+       0x15D,
+       0x15E,
+       0x15F,
+       0x160,
+       0x161,
+       0x162,
+       0x163,
+       0x164,
+       0x165,
+       0x166,
+       0x167,
+       0x168,
+       0x169,
+       0x16A,
+       0x16B,
+       0x16C,
+       0x16D,
+       0x16E,
+       0x16F,
+       0x170,
+       0x171,
+       0x172,
+       0x173,
+       0x174,
+       0x175,
+       0x176,
+       0x177,
+       0x178,
+       0x17A,
+       0x17B,
+       0x17C,
+       0x17D,
+       0x17E,
+       0x181,
+       0x183,
+       0x184,
+       0x185,
+       0x186,
+       0x188,
+       0x189,
+       0x18C,
+       0x18E,
+       0x192,
+       0x193,
+       0x195,
+       0x196,
+       0x199,
+       0x19C,
+       0x19E,
+       0x19F,
+       0x1A1,
+       0x1A2,
+       0x1A3,
+       0x1A4,
+       0x1A5,
+       0x1A6,
+       0x1A8,
+       0x1A9,
+       0x1AA,
+       0x1AC,
+       0x1AD,
+       0x1AE,
+       0x1B0,
+       0x1B1,
+       0x1B4,
+       0x1B5,
+       0x1B6,
+       0x1B7,
+       0x1B9,
+       0x1BB,
+       0x1BD,
+       0x1C0,
+       0x1C6,
+       0x1C7,
+       0x1C9,
+       0x1CA,
+       0x1CC,
+       0x1CD,
+       0x1CE,
+       0x1CF,
+       0x1D0,
+       0x1D1,
+       0x1D2,
+       0x1D3,
+       0x1D4,
+       0x1D5,
+       0x1D6,
+       0x1D7,
+       0x1D8,
+       0x1D9,
+       0x1DA,
+       0x1DB,
+       0x1DC,
+       0x1DE,
+       0x1DF,
+       0x1E0,
+       0x1E1,
+       0x1E2,
+       0x1E3,
+       0x1E4,
+       0x1E5,
+       0x1E6,
+       0x1E7,
+       0x1E8,
+       0x1E9,
+       0x1EA,
+       0x1EB,
+       0x1EC,
+       0x1ED,
+       0x1EE,
+       0x1EF,
+       0x1F1,
+       0x1F3,
+       0x1F4,
+       0x1F5,
+       0x1F6,
+       0x1F9,
+       0x1FA,
+       0x1FB,
+       0x1FC,
+       0x1FD,
+       0x1FE,
+       0x1FF,
+       0x200,
+       0x201,
+       0x202,
+       0x203,
+       0x204,
+       0x205,
+       0x206,
+       0x207,
+       0x208,
+       0x209,
+       0x20A,
+       0x20B,
+       0x20C,
+       0x20D,
+       0x20E,
+       0x20F,
+       0x210,
+       0x211,
+       0x212,
+       0x213,
+       0x214,
+       0x215,
+       0x216,
+       0x217,
+       0x218,
+       0x219,
+       0x21A,
+       0x21B,
+       0x21C,
+       0x21D,
+       0x21E,
+       0x21F,
+       0x220,
+       0x221,
+       0x222,
+       0x223,
+       0x224,
+       0x225,
+       0x226,
+       0x227,
+       0x228,
+       0x229,
+       0x22A,
+       0x22B,
+       0x22C,
+       0x22D,
+       0x22E,
+       0x22F,
+       0x230,
+       0x231,
+       0x232,
+       0x233,
+       0x23A,
+       0x23C,
+       0x23D,
+       0x23F,
+       0x241,
+       0x242,
+       0x243,
+       0x247,
+       0x248,
+       0x249,
+       0x24A,
+       0x24B,
+       0x24C,
+       0x24D,
+       0x24E,
+       0x24F,
+       0x294,
+       0x295,
+       0x2B9,
+       0x2C0,
+       0x2C2,
+       0x2E0,
+       0x2E5,
+       0x345,
+       0x346,
+       0x371,
+       0x372,
+       0x373,
+       0x374,
+       0x377,
+       0x378,
+       0x37A,
+       0x37E,
+       0x390,
+       0x391,
+       0x3AC,
+       0x3CF,
+       0x3D0,
+       0x3D2,
+       0x3D5,
+       0x3D8,
+       0x3D9,
+       0x3DA,
+       0x3DB,
+       0x3DC,
+       0x3DD,
+       0x3DE,
+       0x3DF,
+       0x3E0,
+       0x3E1,
+       0x3E2,
+       0x3E3,
+       0x3E4,
+       0x3E5,
+       0x3E6,
+       0x3E7,
+       0x3E8,
+       0x3E9,
+       0x3EA,
+       0x3EB,
+       0x3EC,
+       0x3ED,
+       0x3EE,
+       0x3EF,
+       0x3F4,
+       0x3F5,
+       0x3F6,
+       0x3F8,
+       0x3F9,
+       0x3FB,
+       0x3FD,
+       0x430,
+       0x460,
+       0x461,
+       0x462,
+       0x463,
+       0x464,
+       0x465,
+       0x466,
+       0x467,
+       0x468,
+       0x469,
+       0x46A,
+       0x46B,
+       0x46C,
+       0x46D,
+       0x46E,
+       0x46F,
+       0x470,
+       0x471,
+       0x472,
+       0x473,
+       0x474,
+       0x475,
+       0x476,
+       0x477,
+       0x478,
+       0x479,
+       0x47A,
+       0x47B,
+       0x47C,
+       0x47D,
+       0x47E,
+       0x47F,
+       0x480,
+       0x481,
+       0x482,
+       0x48B,
+       0x48C,
+       0x48D,
+       0x48E,
+       0x48F,
+       0x490,
+       0x491,
+       0x492,
+       0x493,
+       0x494,
+       0x495,
+       0x496,
+       0x497,
+       0x498,
+       0x499,
+       0x49A,
+       0x49B,
+       0x49C,
+       0x49D,
+       0x49E,
+       0x49F,
+       0x4A0,
+       0x4A1,
+       0x4A2,
+       0x4A3,
+       0x4A4,
+       0x4A5,
+       0x4A6,
+       0x4A7,
+       0x4A8,
+       0x4A9,
+       0x4AA,
+       0x4AB,
+       0x4AC,
+       0x4AD,
+       0x4AE,
+       0x4AF,
+       0x4B0,
+       0x4B1,
+       0x4B2,
+       0x4B3,
+       0x4B4,
+       0x4B5,
+       0x4B6,
+       0x4B7,
+       0x4B8,
+       0x4B9,
+       0x4BA,
+       0x4BB,
+       0x4BC,
+       0x4BD,
+       0x4BE,
+       0x4BF,
+       0x4C0,
+       0x4C2,
+       0x4C3,
+       0x4C4,
+       0x4C5,
+       0x4C6,
+       0x4C7,
+       0x4C8,
+       0x4C9,
+       0x4CA,
+       0x4CB,
+       0x4CC,
+       0x4CD,
+       0x4CE,
+       0x4D0,
+       0x4D1,
+       0x4D2,
+       0x4D3,
+       0x4D4,
+       0x4D5,
+       0x4D6,
+       0x4D7,
+       0x4D8,
+       0x4D9,
+       0x4DA,
+       0x4DB,
+       0x4DC,
+       0x4DD,
+       0x4DE,
+       0x4DF,
+       0x4E0,
+       0x4E1,
+       0x4E2,
+       0x4E3,
+       0x4E4,
+       0x4E5,
+       0x4E6,
+       0x4E7,
+       0x4E8,
+       0x4E9,
+       0x4EA,
+       0x4EB,
+       0x4EC,
+       0x4ED,
+       0x4EE,
+       0x4EF,
+       0x4F0,
+       0x4F1,
+       0x4F2,
+       0x4F3,
+       0x4F4,
+       0x4F5,
+       0x4F6,
+       0x4F7,
+       0x4F8,
+       0x4F9,
+       0x4FA,
+       0x4FB,
+       0x4FC,
+       0x4FD,
+       0x4FE,
+       0x4FF,
+       0x500,
+       0x501,
+       0x502,
+       0x503,
+       0x504,
+       0x505,
+       0x506,
+       0x507,
+       0x508,
+       0x509,
+       0x50A,
+       0x50B,
+       0x50C,
+       0x50D,
+       0x50E,
+       0x50F,
+       0x510,
+       0x511,
+       0x512,
+       0x513,
+       0x514,
+       0x515,
+       0x516,
+       0x517,
+       0x518,
+       0x519,
+       0x51A,
+       0x51B,
+       0x51C,
+       0x51D,
+       0x51E,
+       0x51F,
+       0x520,
+       0x521,
+       0x522,
+       0x523,
+       0x524,
+       0x525,
+       0x526,
+       0x527,
+       0x528,
+       0x529,
+       0x52A,
+       0x52B,
+       0x52C,
+       0x52D,
+       0x52E,
+       0x52F,
+       0x530,
+       0x561,
+       0x588,
+       0x1D00,
+       0x1DC0,
+       0x1E01,
+       0x1E02,
+       0x1E03,
+       0x1E04,
+       0x1E05,
+       0x1E06,
+       0x1E07,
+       0x1E08,
+       0x1E09,
+       0x1E0A,
+       0x1E0B,
+       0x1E0C,
+       0x1E0D,
+       0x1E0E,
+       0x1E0F,
+       0x1E10,
+       0x1E11,
+       0x1E12,
+       0x1E13,
+       0x1E14,
+       0x1E15,
+       0x1E16,
+       0x1E17,
+       0x1E18,
+       0x1E19,
+       0x1E1A,
+       0x1E1B,
+       0x1E1C,
+       0x1E1D,
+       0x1E1E,
+       0x1E1F,
+       0x1E20,
+       0x1E21,
+       0x1E22,
+       0x1E23,
+       0x1E24,
+       0x1E25,
+       0x1E26,
+       0x1E27,
+       0x1E28,
+       0x1E29,
+       0x1E2A,
+       0x1E2B,
+       0x1E2C,
+       0x1E2D,
+       0x1E2E,
+       0x1E2F,
+       0x1E30,
+       0x1E31,
+       0x1E32,
+       0x1E33,
+       0x1E34,
+       0x1E35,
+       0x1E36,
+       0x1E37,
+       0x1E38,
+       0x1E39,
+       0x1E3A,
+       0x1E3B,
+       0x1E3C,
+       0x1E3D,
+       0x1E3E,
+       0x1E3F,
+       0x1E40,
+       0x1E41,
+       0x1E42,
+       0x1E43,
+       0x1E44,
+       0x1E45,
+       0x1E46,
+       0x1E47,
+       0x1E48,
+       0x1E49,
+       0x1E4A,
+       0x1E4B,
+       0x1E4C,
+       0x1E4D,
+       0x1E4E,
+       0x1E4F,
+       0x1E50,
+       0x1E51,
+       0x1E52,
+       0x1E53,
+       0x1E54,
+       0x1E55,
+       0x1E56,
+       0x1E57,
+       0x1E58,
+       0x1E59,
+       0x1E5A,
+       0x1E5B,
+       0x1E5C,
+       0x1E5D,
+       0x1E5E,
+       0x1E5F,
+       0x1E60,
+       0x1E61,
+       0x1E62,
+       0x1E63,
+       0x1E64,
+       0x1E65,
+       0x1E66,
+       0x1E67,
+       0x1E68,
+       0x1E69,
+       0x1E6A,
+       0x1E6B,
+       0x1E6C,
+       0x1E6D,
+       0x1E6E,
+       0x1E6F,
+       0x1E70,
+       0x1E71,
+       0x1E72,
+       0x1E73,
+       0x1E74,
+       0x1E75,
+       0x1E76,
+       0x1E77,
+       0x1E78,
+       0x1E79,
+       0x1E7A,
+       0x1E7B,
+       0x1E7C,
+       0x1E7D,
+       0x1E7E,
+       0x1E7F,
+       0x1E80,
+       0x1E81,
+       0x1E82,
+       0x1E83,
+       0x1E84,
+       0x1E85,
+       0x1E86,
+       0x1E87,
+       0x1E88,
+       0x1E89,
+       0x1E8A,
+       0x1E8B,
+       0x1E8C,
+       0x1E8D,
+       0x1E8E,
+       0x1E8F,
+       0x1E90,
+       0x1E91,
+       0x1E92,
+       0x1E93,
+       0x1E94,
+       0x1E95,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1EA1,
+       0x1EA2,
+       0x1EA3,
+       0x1EA4,
+       0x1EA5,
+       0x1EA6,
+       0x1EA7,
+       0x1EA8,
+       0x1EA9,
+       0x1EAA,
+       0x1EAB,
+       0x1EAC,
+       0x1EAD,
+       0x1EAE,
+       0x1EAF,
+       0x1EB0,
+       0x1EB1,
+       0x1EB2,
+       0x1EB3,
+       0x1EB4,
+       0x1EB5,
+       0x1EB6,
+       0x1EB7,
+       0x1EB8,
+       0x1EB9,
+       0x1EBA,
+       0x1EBB,
+       0x1EBC,
+       0x1EBD,
+       0x1EBE,
+       0x1EBF,
+       0x1EC0,
+       0x1EC1,
+       0x1EC2,
+       0x1EC3,
+       0x1EC4,
+       0x1EC5,
+       0x1EC6,
+       0x1EC7,
+       0x1EC8,
+       0x1EC9,
+       0x1ECA,
+       0x1ECB,
+       0x1ECC,
+       0x1ECD,
+       0x1ECE,
+       0x1ECF,
+       0x1ED0,
+       0x1ED1,
+       0x1ED2,
+       0x1ED3,
+       0x1ED4,
+       0x1ED5,
+       0x1ED6,
+       0x1ED7,
+       0x1ED8,
+       0x1ED9,
+       0x1EDA,
+       0x1EDB,
+       0x1EDC,
+       0x1EDD,
+       0x1EDE,
+       0x1EDF,
+       0x1EE0,
+       0x1EE1,
+       0x1EE2,
+       0x1EE3,
+       0x1EE4,
+       0x1EE5,
+       0x1EE6,
+       0x1EE7,
+       0x1EE8,
+       0x1EE9,
+       0x1EEA,
+       0x1EEB,
+       0x1EEC,
+       0x1EED,
+       0x1EEE,
+       0x1EEF,
+       0x1EF0,
+       0x1EF1,
+       0x1EF2,
+       0x1EF3,
+       0x1EF4,
+       0x1EF5,
+       0x1EF6,
+       0x1EF7,
+       0x1EF8,
+       0x1EF9,
+       0x1EFA,
+       0x1EFB,
+       0x1EFC,
+       0x1EFD,
+       0x1EFE,
+       0x1EFF,
+       0x1F08,
+       0x1F10,
+       0x1F16,
+       0x1F20,
+       0x1F28,
+       0x1F30,
+       0x1F38,
+       0x1F40,
+       0x1F46,
+       0x1F50,
+       0x1F58,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1F7E,
+       0x1F80,
+       0x1F88,
+       0x1F90,
+       0x1F98,
+       0x1FA0,
+       0x1FA8,
+       0x1FB0,
+       0x1FB5,
+       0x1FB6,
+       0x1FB8,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FC8,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FD8,
+       0x1FE0,
+       0x1FE8,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FF8,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x210A,
+       0x210B,
+       0x210E,
+       0x2110,
+       0x2113,
+       0x2114,
+       0x212F,
+       0x2130,
+       0x2134,
+       0x2135,
+       0x2139,
+       0x213A,
+       0x213C,
+       0x213E,
+       0x2146,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2170,
+       0x2180,
+       0x2184,
+       0x2185,
+       0x24D0,
+       0x24EA,
+       0x2C30,
+       0x2C5F,
+       0x2C61,
+       0x2C62,
+       0x2C65,
+       0x2C67,
+       0x2C68,
+       0x2C69,
+       0x2C6A,
+       0x2C6B,
+       0x2C6C,
+       0x2C6D,
+       0x2C71,
+       0x2C72,
+       0x2C73,
+       0x2C75,
+       0x2C76,
+       0x2C7E,
+       0x2C81,
+       0x2C82,
+       0x2C83,
+       0x2C84,
+       0x2C85,
+       0x2C86,
+       0x2C87,
+       0x2C88,
+       0x2C89,
+       0x2C8A,
+       0x2C8B,
+       0x2C8C,
+       0x2C8D,
+       0x2C8E,
+       0x2C8F,
+       0x2C90,
+       0x2C91,
+       0x2C92,
+       0x2C93,
+       0x2C94,
+       0x2C95,
+       0x2C96,
+       0x2C97,
+       0x2C98,
+       0x2C99,
+       0x2C9A,
+       0x2C9B,
+       0x2C9C,
+       0x2C9D,
+       0x2C9E,
+       0x2C9F,
+       0x2CA0,
+       0x2CA1,
+       0x2CA2,
+       0x2CA3,
+       0x2CA4,
+       0x2CA5,
+       0x2CA6,
+       0x2CA7,
+       0x2CA8,
+       0x2CA9,
+       0x2CAA,
+       0x2CAB,
+       0x2CAC,
+       0x2CAD,
+       0x2CAE,
+       0x2CAF,
+       0x2CB0,
+       0x2CB1,
+       0x2CB2,
+       0x2CB3,
+       0x2CB4,
+       0x2CB5,
+       0x2CB6,
+       0x2CB7,
+       0x2CB8,
+       0x2CB9,
+       0x2CBA,
+       0x2CBB,
+       0x2CBC,
+       0x2CBD,
+       0x2CBE,
+       0x2CBF,
+       0x2CC0,
+       0x2CC1,
+       0x2CC2,
+       0x2CC3,
+       0x2CC4,
+       0x2CC5,
+       0x2CC6,
+       0x2CC7,
+       0x2CC8,
+       0x2CC9,
+       0x2CCA,
+       0x2CCB,
+       0x2CCC,
+       0x2CCD,
+       0x2CCE,
+       0x2CCF,
+       0x2CD0,
+       0x2CD1,
+       0x2CD2,
+       0x2CD3,
+       0x2CD4,
+       0x2CD5,
+       0x2CD6,
+       0x2CD7,
+       0x2CD8,
+       0x2CD9,
+       0x2CDA,
+       0x2CDB,
+       0x2CDC,
+       0x2CDD,
+       0x2CDE,
+       0x2CDF,
+       0x2CE0,
+       0x2CE1,
+       0x2CE2,
+       0x2CE3,
+       0x2CE5,
+       0x2CEC,
+       0x2CED,
+       0x2CEE,
+       0x2CEF,
+       0x2CF3,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0xA641,
+       0xA642,
+       0xA643,
+       0xA644,
+       0xA645,
+       0xA646,
+       0xA647,
+       0xA648,
+       0xA649,
+       0xA64A,
+       0xA64B,
+       0xA64C,
+       0xA64D,
+       0xA64E,
+       0xA64F,
+       0xA650,
+       0xA651,
+       0xA652,
+       0xA653,
+       0xA654,
+       0xA655,
+       0xA656,
+       0xA657,
+       0xA658,
+       0xA659,
+       0xA65A,
+       0xA65B,
+       0xA65C,
+       0xA65D,
+       0xA65E,
+       0xA65F,
+       0xA660,
+       0xA661,
+       0xA662,
+       0xA663,
+       0xA664,
+       0xA665,
+       0xA666,
+       0xA667,
+       0xA668,
+       0xA669,
+       0xA66A,
+       0xA66B,
+       0xA66C,
+       0xA66D,
+       0xA66E,
+       0xA681,
+       0xA682,
+       0xA683,
+       0xA684,
+       0xA685,
+       0xA686,
+       0xA687,
+       0xA688,
+       0xA689,
+       0xA68A,
+       0xA68B,
+       0xA68C,
+       0xA68D,
+       0xA68E,
+       0xA68F,
+       0xA690,
+       0xA691,
+       0xA692,
+       0xA693,
+       0xA694,
+       0xA695,
+       0xA696,
+       0xA697,
+       0xA698,
+       0xA699,
+       0xA69A,
+       0xA69B,
+       0xA69E,
+       0xA723,
+       0xA724,
+       0xA725,
+       0xA726,
+       0xA727,
+       0xA728,
+       0xA729,
+       0xA72A,
+       0xA72B,
+       0xA72C,
+       0xA72D,
+       0xA72E,
+       0xA72F,
+       0xA732,
+       0xA733,
+       0xA734,
+       0xA735,
+       0xA736,
+       0xA737,
+       0xA738,
+       0xA739,
+       0xA73A,
+       0xA73B,
+       0xA73C,
+       0xA73D,
+       0xA73E,
+       0xA73F,
+       0xA740,
+       0xA741,
+       0xA742,
+       0xA743,
+       0xA744,
+       0xA745,
+       0xA746,
+       0xA747,
+       0xA748,
+       0xA749,
+       0xA74A,
+       0xA74B,
+       0xA74C,
+       0xA74D,
+       0xA74E,
+       0xA74F,
+       0xA750,
+       0xA751,
+       0xA752,
+       0xA753,
+       0xA754,
+       0xA755,
+       0xA756,
+       0xA757,
+       0xA758,
+       0xA759,
+       0xA75A,
+       0xA75B,
+       0xA75C,
+       0xA75D,
+       0xA75E,
+       0xA75F,
+       0xA760,
+       0xA761,
+       0xA762,
+       0xA763,
+       0xA764,
+       0xA765,
+       0xA766,
+       0xA767,
+       0xA768,
+       0xA769,
+       0xA76A,
+       0xA76B,
+       0xA76C,
+       0xA76D,
+       0xA76E,
+       0xA76F,
+       0xA779,
+       0xA77A,
+       0xA77B,
+       0xA77C,
+       0xA77D,
+       0xA77F,
+       0xA780,
+       0xA781,
+       0xA782,
+       0xA783,
+       0xA784,
+       0xA785,
+       0xA786,
+       0xA787,
+       0xA788,
+       0xA78C,
+       0xA78D,
+       0xA78E,
+       0xA78F,
+       0xA791,
+       0xA792,
+       0xA793,
+       0xA796,
+       0xA797,
+       0xA798,
+       0xA799,
+       0xA79A,
+       0xA79B,
+       0xA79C,
+       0xA79D,
+       0xA79E,
+       0xA79F,
+       0xA7A0,
+       0xA7A1,
+       0xA7A2,
+       0xA7A3,
+       0xA7A4,
+       0xA7A5,
+       0xA7A6,
+       0xA7A7,
+       0xA7A8,
+       0xA7A9,
+       0xA7AA,
+       0xA7F8,
+       0xA7FB,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFF41,
+       0xFF5B,
+       0x10428,
+       0x10450,
+       0x118C0,
+       0x118E0,
+       0x1D41A,
+       0x1D434,
+       0x1D44E,
+       0x1D455,
+       0x1D456,
+       0x1D468,
+       0x1D482,
+       0x1D49C,
+       0x1D4B6,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D4D0,
+       0x1D4EA,
+       0x1D504,
+       0x1D51E,
+       0x1D538,
+       0x1D552,
+       0x1D56C,
+       0x1D586,
+       0x1D5A0,
+       0x1D5BA,
+       0x1D5D4,
+       0x1D5EE,
+       0x1D608,
+       0x1D622,
+       0x1D63C,
+       0x1D656,
+       0x1D670,
+       0x1D68A,
+       0x1D6A6,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6E2,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D71C,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D756,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D790,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CA,
+       0x1D7CB,
+       0x1D7CC
 };
 
 static const UV XPosixPrint_invlist[] = { /* for EBCDIC POSIX-BC */
@@ -43073,1211 +93131,1211 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC POSIX-BC */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       64,
-       95,
-       96,
-       888,
-       890,
-       896,
-       900,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1328,
-       1329,
-       1367,
-       1369,
-       1376,
-       1377,
-       1416,
-       1417,
-       1419,
-       1421,
-       1424,
-       1425,
-       1480,
-       1488,
-       1515,
-       1520,
-       1525,
-       1536,
-       1565,
-       1566,
-       1806,
-       1807,
-       1867,
-       1869,
-       1970,
-       1984,
-       2043,
-       2048,
-       2094,
-       2096,
-       2111,
-       2112,
-       2140,
-       2142,
-       2143,
-       2208,
-       2227,
-       2276,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2492,
-       2501,
-       2503,
-       2505,
-       2507,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2556,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2620,
-       2621,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2638,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2748,
-       2758,
-       2759,
-       2762,
-       2763,
-       2766,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2802,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2876,
-       2885,
-       2887,
-       2889,
-       2891,
-       2894,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2936,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3022,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3067,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3150,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3192,
-       3200,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3260,
-       3269,
-       3270,
-       3273,
-       3274,
-       3278,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3446,
-       3449,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3530,
-       3531,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3573,
-       3585,
-       3643,
-       3647,
-       3676,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3784,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3912,
-       3913,
-       3949,
-       3953,
-       3992,
-       3993,
-       4029,
-       4030,
-       4045,
-       4046,
-       4059,
-       4096,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4957,
-       4989,
-       4992,
-       5018,
-       5024,
-       5109,
-       5120,
-       5789,
-       5792,
-       5881,
-       5888,
-       5901,
-       5902,
-       5909,
-       5920,
-       5943,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6110,
-       6112,
-       6122,
-       6128,
-       6138,
-       6144,
-       6159,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6460,
-       6464,
-       6465,
-       6468,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6619,
-       6622,
-       6684,
-       6686,
-       6751,
-       6752,
-       6781,
-       6783,
-       6794,
-       6800,
-       6810,
-       6816,
-       6830,
-       6832,
-       6847,
-       6912,
-       6988,
-       6992,
-       7037,
-       7040,
-       7156,
-       7164,
-       7224,
-       7227,
-       7242,
-       7245,
-       7296,
-       7360,
-       7368,
-       7376,
-       7415,
-       7416,
-       7418,
-       7424,
-       7670,
-       7676,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8133,
-       8134,
-       8148,
-       8150,
-       8156,
-       8157,
-       8176,
-       8178,
-       8181,
-       8182,
-       8191,
-       8192,
-       8232,
-       8234,
-       8293,
-       8294,
-       8306,
-       8308,
-       8335,
-       8336,
-       8349,
-       8352,
-       8382,
-       8400,
-       8433,
-       8448,
-       8586,
-       8592,
-       9211,
-       9216,
-       9255,
-       9280,
-       9291,
-       9312,
-       11124,
-       11126,
-       11158,
-       11160,
-       11194,
-       11197,
-       11209,
-       11210,
-       11218,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11508,
-       11513,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11633,
-       11647,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11843,
-       11904,
-       11930,
-       11931,
-       12020,
-       12032,
-       12246,
-       12272,
-       12284,
-       12288,
-       12352,
-       12353,
-       12439,
-       12441,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12688,
-       12731,
-       12736,
-       12772,
-       12784,
-       12831,
-       12832,
-       13055,
-       13056,
-       19894,
-       19904,
-       40909,
-       40960,
-       42125,
-       42128,
-       42183,
-       42192,
-       42540,
-       42560,
-       42654,
-       42655,
-       42744,
-       42752,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43052,
-       43056,
-       43066,
-       43072,
-       43128,
-       43136,
-       43205,
-       43214,
-       43226,
-       43232,
-       43260,
-       43264,
-       43348,
-       43359,
-       43389,
-       43392,
-       43470,
-       43471,
-       43482,
-       43486,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43612,
-       43715,
-       43739,
-       43767,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43872,
-       43876,
-       43878,
-       43968,
-       44014,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       57344,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64450,
-       64467,
-       64832,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65022,
-       65024,
-       65050,
-       65056,
-       65070,
-       65072,
-       65107,
-       65108,
-       65127,
-       65128,
-       65132,
-       65136,
-       65141,
-       65142,
-       65277,
-       65279,
-       65280,
-       65281,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65504,
-       65511,
-       65512,
-       65519,
-       65529,
-       65534,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65792,
-       65795,
-       65799,
-       65844,
-       65847,
-       65933,
-       65936,
-       65948,
-       65952,
-       65953,
-       66000,
-       66046,
-       66176,
-       66205,
-       66208,
-       66257,
-       66272,
-       66300,
-       66304,
-       66340,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66463,
-       66500,
-       66504,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       66927,
-       66928,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67671,
-       67743,
-       67751,
-       67760,
-       67840,
-       67868,
-       67871,
-       67898,
-       67903,
-       67904,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68152,
-       68155,
-       68159,
-       68168,
-       68176,
-       68185,
-       68192,
-       68256,
-       68288,
-       68327,
-       68331,
-       68343,
-       68352,
-       68406,
-       68409,
-       68438,
-       68440,
-       68467,
-       68472,
-       68498,
-       68505,
-       68509,
-       68521,
-       68528,
-       68608,
-       68681,
-       69216,
-       69247,
-       69632,
-       69710,
-       69714,
-       69744,
-       69759,
-       69826,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69941,
-       69942,
-       69956,
-       69968,
-       70007,
-       70016,
-       70089,
-       70093,
-       70094,
-       70096,
-       70107,
-       70113,
-       70133,
-       70144,
-       70162,
-       70163,
-       70206,
-       70320,
-       70379,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70460,
-       70469,
-       70471,
-       70473,
-       70475,
-       70478,
-       70487,
-       70488,
-       70493,
-       70500,
-       70502,
-       70509,
-       70512,
-       70517,
-       70784,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71114,
-       71168,
-       71237,
-       71248,
-       71258,
-       71296,
-       71352,
-       71360,
-       71370,
-       71840,
-       71923,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       74864,
-       74869,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92782,
-       92784,
-       92880,
-       92910,
-       92912,
-       92918,
-       92928,
-       92998,
-       93008,
-       93018,
-       93019,
-       93026,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94095,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113820,
-       113828,
-       118784,
-       119030,
-       119040,
-       119079,
-       119081,
-       119262,
-       119296,
-       119366,
-       119552,
-       119639,
-       119648,
-       119666,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       125127,
-       125143,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       126704,
-       126706,
-       126976,
-       127020,
-       127024,
-       127124,
-       127136,
-       127151,
-       127153,
-       127168,
-       127169,
-       127184,
-       127185,
-       127222,
-       127232,
-       127245,
-       127248,
-       127279,
-       127280,
-       127340,
-       127344,
-       127387,
-       127462,
-       127491,
-       127504,
-       127547,
-       127552,
-       127561,
-       127568,
-       127570,
-       127744,
-       127789,
-       127792,
-       127870,
-       127872,
-       127951,
-       127956,
-       127992,
-       128000,
-       128255,
-       128256,
-       128331,
-       128336,
-       128378,
-       128379,
-       128420,
-       128421,
-       128579,
-       128581,
-       128720,
-       128736,
-       128749,
-       128752,
-       128756,
-       128768,
-       128884,
-       128896,
-       128981,
-       129024,
-       129036,
-       129040,
-       129096,
-       129104,
-       129114,
-       129120,
-       129160,
-       129168,
-       129198,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102,
-       917505,
-       917506,
-       917536,
-       917632,
-       917760,
-       918000,
-       983040,
-       1048574,
-       1048576,
-       1114110
+       0x0,
+       0x40,
+       0x5F,
+       0x60,
+       0x378,
+       0x37A,
+       0x380,
+       0x384,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x560,
+       0x561,
+       0x588,
+       0x589,
+       0x58B,
+       0x58D,
+       0x590,
+       0x591,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F5,
+       0x600,
+       0x61D,
+       0x61E,
+       0x70E,
+       0x70F,
+       0x74B,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7FB,
+       0x800,
+       0x82E,
+       0x830,
+       0x83F,
+       0x840,
+       0x85C,
+       0x85E,
+       0x85F,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9FC,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF2,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB78,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBFB,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC78,
+       0xC80,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD76,
+       0xD79,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF5,
+       0xE01,
+       0xE3B,
+       0xE3F,
+       0xE5C,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFBE,
+       0xFCD,
+       0xFCE,
+       0xFDB,
+       0x1000,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x137D,
+       0x1380,
+       0x139A,
+       0x13A0,
+       0x13F5,
+       0x1400,
+       0x169D,
+       0x16A0,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1715,
+       0x1720,
+       0x1737,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x17F0,
+       0x17FA,
+       0x1800,
+       0x180F,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1940,
+       0x1941,
+       0x1944,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DB,
+       0x19DE,
+       0x1A1C,
+       0x1A1E,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA0,
+       0x1AAE,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B4C,
+       0x1B50,
+       0x1B7D,
+       0x1B80,
+       0x1BF4,
+       0x1BFC,
+       0x1C38,
+       0x1C3B,
+       0x1C4A,
+       0x1C4D,
+       0x1C80,
+       0x1CC0,
+       0x1CC8,
+       0x1CD0,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DF6,
+       0x1DFC,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FC5,
+       0x1FC6,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FDD,
+       0x1FF0,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFF,
+       0x2000,
+       0x2028,
+       0x202A,
+       0x2065,
+       0x2066,
+       0x2072,
+       0x2074,
+       0x208F,
+       0x2090,
+       0x209D,
+       0x20A0,
+       0x20BE,
+       0x20D0,
+       0x20F1,
+       0x2100,
+       0x218A,
+       0x2190,
+       0x23FB,
+       0x2400,
+       0x2427,
+       0x2440,
+       0x244B,
+       0x2460,
+       0x2B74,
+       0x2B76,
+       0x2B96,
+       0x2B98,
+       0x2BBA,
+       0x2BBD,
+       0x2BC9,
+       0x2BCA,
+       0x2BD2,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CF4,
+       0x2CF9,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D71,
+       0x2D7F,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E43,
+       0x2E80,
+       0x2E9A,
+       0x2E9B,
+       0x2EF4,
+       0x2F00,
+       0x2FD6,
+       0x2FF0,
+       0x2FFC,
+       0x3000,
+       0x3040,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x3190,
+       0x31BB,
+       0x31C0,
+       0x31E4,
+       0x31F0,
+       0x321F,
+       0x3220,
+       0x32FF,
+       0x3300,
+       0x4DB6,
+       0x4DC0,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA490,
+       0xA4C7,
+       0xA4D0,
+       0xA62C,
+       0xA640,
+       0xA69E,
+       0xA69F,
+       0xA6F8,
+       0xA700,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA82C,
+       0xA830,
+       0xA83A,
+       0xA840,
+       0xA878,
+       0xA880,
+       0xA8C5,
+       0xA8CE,
+       0xA8DA,
+       0xA8E0,
+       0xA8FC,
+       0xA900,
+       0xA954,
+       0xA95F,
+       0xA97D,
+       0xA980,
+       0xA9CE,
+       0xA9CF,
+       0xA9DA,
+       0xA9DE,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA5C,
+       0xAAC3,
+       0xAADB,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xE000,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBC2,
+       0xFBD3,
+       0xFD40,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFE,
+       0xFE00,
+       0xFE1A,
+       0xFE20,
+       0xFE2E,
+       0xFE30,
+       0xFE53,
+       0xFE54,
+       0xFE67,
+       0xFE68,
+       0xFE6C,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFEFF,
+       0xFF00,
+       0xFF01,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0xFFE0,
+       0xFFE7,
+       0xFFE8,
+       0xFFEF,
+       0xFFF9,
+       0xFFFE,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10100,
+       0x10103,
+       0x10107,
+       0x10134,
+       0x10137,
+       0x1018D,
+       0x10190,
+       0x1019C,
+       0x101A0,
+       0x101A1,
+       0x101D0,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102FC,
+       0x10300,
+       0x10324,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x1039F,
+       0x103C4,
+       0x103C8,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x1056F,
+       0x10570,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10857,
+       0x1089F,
+       0x108A7,
+       0x108B0,
+       0x10900,
+       0x1091C,
+       0x1091F,
+       0x1093A,
+       0x1093F,
+       0x10940,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A48,
+       0x10A50,
+       0x10A59,
+       0x10A60,
+       0x10AA0,
+       0x10AC0,
+       0x10AE7,
+       0x10AEB,
+       0x10AF7,
+       0x10B00,
+       0x10B36,
+       0x10B39,
+       0x10B56,
+       0x10B58,
+       0x10B73,
+       0x10B78,
+       0x10B92,
+       0x10B99,
+       0x10B9D,
+       0x10BA9,
+       0x10BB0,
+       0x10C00,
+       0x10C49,
+       0x10E60,
+       0x10E7F,
+       0x11000,
+       0x1104E,
+       0x11052,
+       0x11070,
+       0x1107F,
+       0x110C2,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11135,
+       0x11136,
+       0x11144,
+       0x11150,
+       0x11177,
+       0x11180,
+       0x111C9,
+       0x111CD,
+       0x111CE,
+       0x111D0,
+       0x111DB,
+       0x111E1,
+       0x111F5,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x1123E,
+       0x112B0,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115CA,
+       0x11600,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118F3,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x12470,
+       0x12475,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16A6E,
+       0x16A70,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF6,
+       0x16B00,
+       0x16B46,
+       0x16B50,
+       0x16B5A,
+       0x16B5B,
+       0x16B62,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F8F,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9C,
+       0x1BCA4,
+       0x1D000,
+       0x1D0F6,
+       0x1D100,
+       0x1D127,
+       0x1D129,
+       0x1D1DE,
+       0x1D200,
+       0x1D246,
+       0x1D300,
+       0x1D357,
+       0x1D360,
+       0x1D372,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8C7,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1EEF0,
+       0x1EEF2,
+       0x1F000,
+       0x1F02C,
+       0x1F030,
+       0x1F094,
+       0x1F0A0,
+       0x1F0AF,
+       0x1F0B1,
+       0x1F0C0,
+       0x1F0C1,
+       0x1F0D0,
+       0x1F0D1,
+       0x1F0F6,
+       0x1F100,
+       0x1F10D,
+       0x1F110,
+       0x1F12F,
+       0x1F130,
+       0x1F16C,
+       0x1F170,
+       0x1F19B,
+       0x1F1E6,
+       0x1F203,
+       0x1F210,
+       0x1F23B,
+       0x1F240,
+       0x1F249,
+       0x1F250,
+       0x1F252,
+       0x1F300,
+       0x1F32D,
+       0x1F330,
+       0x1F37E,
+       0x1F380,
+       0x1F3CF,
+       0x1F3D4,
+       0x1F3F8,
+       0x1F400,
+       0x1F4FF,
+       0x1F500,
+       0x1F54B,
+       0x1F550,
+       0x1F57A,
+       0x1F57B,
+       0x1F5A4,
+       0x1F5A5,
+       0x1F643,
+       0x1F645,
+       0x1F6D0,
+       0x1F6E0,
+       0x1F6ED,
+       0x1F6F0,
+       0x1F6F4,
+       0x1F700,
+       0x1F774,
+       0x1F780,
+       0x1F7D5,
+       0x1F800,
+       0x1F80C,
+       0x1F810,
+       0x1F848,
+       0x1F850,
+       0x1F85A,
+       0x1F860,
+       0x1F888,
+       0x1F890,
+       0x1F8AE,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0001,
+       0xE0002,
+       0xE0020,
+       0xE0080,
+       0xE0100,
+       0xE01F0,
+       0xF0000,
+       0xFFFFE,
+       0x100000,
+       0x10FFFE
 };
 
 static const UV XPosixPunct_invlist[] = { /* for EBCDIC POSIX-BC */
@@ -44285,313 +94343,313 @@ static const UV XPosixPunct_invlist[] = { /* for EBCDIC POSIX-BC */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       74,
-       81,
-       90,
-       95,
-       96,
-       98,
-       106,
-       112,
-       122,
-       128,
-       138,
-       140,
-       170,
-       172,
-       179,
-       180,
-       181,
-       183,
-       187,
-       190,
-       251,
-       252,
-       253,
-       254,
-       255,
-       256,
-       894,
-       895,
-       903,
-       904,
-       1370,
-       1376,
-       1417,
-       1419,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1523,
-       1525,
-       1545,
-       1547,
-       1548,
-       1550,
-       1563,
-       1564,
-       1566,
-       1568,
-       1642,
-       1646,
-       1748,
-       1749,
-       1792,
-       1806,
-       2039,
-       2042,
-       2096,
-       2111,
-       2142,
-       2143,
-       2404,
-       2406,
-       2416,
-       2417,
-       2800,
-       2801,
-       3572,
-       3573,
-       3663,
-       3664,
-       3674,
-       3676,
-       3844,
-       3859,
-       3860,
-       3861,
-       3898,
-       3902,
-       3973,
-       3974,
-       4048,
-       4053,
-       4057,
-       4059,
-       4170,
-       4176,
-       4347,
-       4348,
-       4960,
-       4969,
-       5120,
-       5121,
-       5741,
-       5743,
-       5787,
-       5789,
-       5867,
-       5870,
-       5941,
-       5943,
-       6100,
-       6103,
-       6104,
-       6107,
-       6144,
-       6155,
-       6468,
-       6470,
-       6686,
-       6688,
-       6816,
-       6823,
-       6824,
-       6830,
-       7002,
-       7009,
-       7164,
-       7168,
-       7227,
-       7232,
-       7294,
-       7296,
-       7360,
-       7368,
-       7379,
-       7380,
-       8208,
-       8232,
-       8240,
-       8260,
-       8261,
-       8274,
-       8275,
-       8287,
-       8317,
-       8319,
-       8333,
-       8335,
-       8968,
-       8972,
-       9001,
-       9003,
-       10088,
-       10102,
-       10181,
-       10183,
-       10214,
-       10224,
-       10627,
-       10649,
-       10712,
-       10716,
-       10748,
-       10750,
-       11513,
-       11517,
-       11518,
-       11520,
-       11632,
-       11633,
-       11776,
-       11823,
-       11824,
-       11843,
-       12289,
-       12292,
-       12296,
-       12306,
-       12308,
-       12320,
-       12336,
-       12337,
-       12349,
-       12350,
-       12448,
-       12449,
-       12539,
-       12540,
-       42238,
-       42240,
-       42509,
-       42512,
-       42611,
-       42612,
-       42622,
-       42623,
-       42738,
-       42744,
-       43124,
-       43128,
-       43214,
-       43216,
-       43256,
-       43259,
-       43310,
-       43312,
-       43359,
-       43360,
-       43457,
-       43470,
-       43486,
-       43488,
-       43612,
-       43616,
-       43742,
-       43744,
-       43760,
-       43762,
-       44011,
-       44012,
-       64830,
-       64832,
-       65040,
-       65050,
-       65072,
-       65107,
-       65108,
-       65122,
-       65123,
-       65124,
-       65128,
-       65129,
-       65130,
-       65132,
-       65281,
-       65284,
-       65285,
-       65291,
-       65292,
-       65296,
-       65306,
-       65308,
-       65311,
-       65313,
-       65339,
-       65342,
-       65343,
-       65344,
-       65371,
-       65372,
-       65373,
-       65374,
-       65375,
-       65382,
-       65792,
-       65795,
-       66463,
-       66464,
-       66512,
-       66513,
-       66927,
-       66928,
-       67671,
-       67672,
-       67871,
-       67872,
-       67903,
-       67904,
-       68176,
-       68185,
-       68223,
-       68224,
-       68336,
-       68343,
-       68409,
-       68416,
-       68505,
-       68509,
-       69703,
-       69710,
-       69819,
-       69821,
-       69822,
-       69826,
-       69952,
-       69956,
-       70004,
-       70006,
-       70085,
-       70089,
-       70093,
-       70094,
-       70200,
-       70206,
-       70854,
-       70855,
-       71105,
-       71114,
-       71233,
-       71236,
-       74864,
-       74869,
-       92782,
-       92784,
-       92917,
-       92918,
-       92983,
-       92988,
-       92996,
-       92997,
-       113823,
-       113824
+       0x0,
+       0x4A,
+       0x51,
+       0x5A,
+       0x5F,
+       0x60,
+       0x62,
+       0x6A,
+       0x70,
+       0x7A,
+       0x80,
+       0x8A,
+       0x8C,
+       0xAA,
+       0xAC,
+       0xB3,
+       0xB4,
+       0xB5,
+       0xB7,
+       0xBB,
+       0xBE,
+       0xFB,
+       0xFC,
+       0xFD,
+       0xFE,
+       0xFF,
+       0x100,
+       0x37E,
+       0x37F,
+       0x387,
+       0x388,
+       0x55A,
+       0x560,
+       0x589,
+       0x58B,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5F3,
+       0x5F5,
+       0x609,
+       0x60B,
+       0x60C,
+       0x60E,
+       0x61B,
+       0x61C,
+       0x61E,
+       0x620,
+       0x66A,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x700,
+       0x70E,
+       0x7F7,
+       0x7FA,
+       0x830,
+       0x83F,
+       0x85E,
+       0x85F,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0xAF0,
+       0xAF1,
+       0xDF4,
+       0xDF5,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xE5C,
+       0xF04,
+       0xF13,
+       0xF14,
+       0xF15,
+       0xF3A,
+       0xF3E,
+       0xF85,
+       0xF86,
+       0xFD0,
+       0xFD5,
+       0xFD9,
+       0xFDB,
+       0x104A,
+       0x1050,
+       0x10FB,
+       0x10FC,
+       0x1360,
+       0x1369,
+       0x1400,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x169B,
+       0x169D,
+       0x16EB,
+       0x16EE,
+       0x1735,
+       0x1737,
+       0x17D4,
+       0x17D7,
+       0x17D8,
+       0x17DB,
+       0x1800,
+       0x180B,
+       0x1944,
+       0x1946,
+       0x1A1E,
+       0x1A20,
+       0x1AA0,
+       0x1AA7,
+       0x1AA8,
+       0x1AAE,
+       0x1B5A,
+       0x1B61,
+       0x1BFC,
+       0x1C00,
+       0x1C3B,
+       0x1C40,
+       0x1C7E,
+       0x1C80,
+       0x1CC0,
+       0x1CC8,
+       0x1CD3,
+       0x1CD4,
+       0x2010,
+       0x2028,
+       0x2030,
+       0x2044,
+       0x2045,
+       0x2052,
+       0x2053,
+       0x205F,
+       0x207D,
+       0x207F,
+       0x208D,
+       0x208F,
+       0x2308,
+       0x230C,
+       0x2329,
+       0x232B,
+       0x2768,
+       0x2776,
+       0x27C5,
+       0x27C7,
+       0x27E6,
+       0x27F0,
+       0x2983,
+       0x2999,
+       0x29D8,
+       0x29DC,
+       0x29FC,
+       0x29FE,
+       0x2CF9,
+       0x2CFD,
+       0x2CFE,
+       0x2D00,
+       0x2D70,
+       0x2D71,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x2E43,
+       0x3001,
+       0x3004,
+       0x3008,
+       0x3012,
+       0x3014,
+       0x3020,
+       0x3030,
+       0x3031,
+       0x303D,
+       0x303E,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA6F2,
+       0xA6F8,
+       0xA874,
+       0xA878,
+       0xA8CE,
+       0xA8D0,
+       0xA8F8,
+       0xA8FB,
+       0xA92E,
+       0xA930,
+       0xA95F,
+       0xA960,
+       0xA9C1,
+       0xA9CE,
+       0xA9DE,
+       0xA9E0,
+       0xAA5C,
+       0xAA60,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xABEB,
+       0xABEC,
+       0xFD3E,
+       0xFD40,
+       0xFE10,
+       0xFE1A,
+       0xFE30,
+       0xFE53,
+       0xFE54,
+       0xFE62,
+       0xFE63,
+       0xFE64,
+       0xFE68,
+       0xFE69,
+       0xFE6A,
+       0xFE6C,
+       0xFF01,
+       0xFF04,
+       0xFF05,
+       0xFF0B,
+       0xFF0C,
+       0xFF10,
+       0xFF1A,
+       0xFF1C,
+       0xFF1F,
+       0xFF21,
+       0xFF3B,
+       0xFF3E,
+       0xFF3F,
+       0xFF40,
+       0xFF5B,
+       0xFF5C,
+       0xFF5D,
+       0xFF5E,
+       0xFF5F,
+       0xFF66,
+       0x10100,
+       0x10103,
+       0x1039F,
+       0x103A0,
+       0x103D0,
+       0x103D1,
+       0x1056F,
+       0x10570,
+       0x10857,
+       0x10858,
+       0x1091F,
+       0x10920,
+       0x1093F,
+       0x10940,
+       0x10A50,
+       0x10A59,
+       0x10A7F,
+       0x10A80,
+       0x10AF0,
+       0x10AF7,
+       0x10B39,
+       0x10B40,
+       0x10B99,
+       0x10B9D,
+       0x11047,
+       0x1104E,
+       0x110BB,
+       0x110BD,
+       0x110BE,
+       0x110C2,
+       0x11140,
+       0x11144,
+       0x11174,
+       0x11176,
+       0x111C5,
+       0x111C9,
+       0x111CD,
+       0x111CE,
+       0x11238,
+       0x1123E,
+       0x114C6,
+       0x114C7,
+       0x115C1,
+       0x115CA,
+       0x11641,
+       0x11644,
+       0x12470,
+       0x12475,
+       0x16A6E,
+       0x16A70,
+       0x16AF5,
+       0x16AF6,
+       0x16B37,
+       0x16B3C,
+       0x16B44,
+       0x16B45,
+       0x1BC9F,
+       0x1BCA0
 };
 
 static const UV XPosixSpace_invlist[] = { /* for EBCDIC POSIX-BC */
@@ -44599,29 +94657,29 @@ static const UV XPosixSpace_invlist[] = { /* for EBCDIC POSIX-BC */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       5,
-       6,
-       11,
-       14,
-       21,
-       22,
-       37,
-       38,
-       64,
-       66,
-       5760,
-       5761,
-       8192,
-       8203,
-       8232,
-       8234,
-       8239,
-       8240,
-       8287,
-       8288,
-       12288,
-       12289
+       0x0,
+       0x5,
+       0x6,
+       0xB,
+       0xE,
+       0x15,
+       0x16,
+       0x25,
+       0x26,
+       0x40,
+       0x42,
+       0x1680,
+       0x1681,
+       0x2000,
+       0x200B,
+       0x2028,
+       0x202A,
+       0x202F,
+       0x2030,
+       0x205F,
+       0x2060,
+       0x3000,
+       0x3001
 };
 
 static const UV XPosixUpper_invlist[] = { /* for EBCDIC POSIX-BC */
@@ -44629,1281 +94687,1281 @@ static const UV XPosixUpper_invlist[] = { /* for EBCDIC POSIX-BC */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       98,
-       106,
-       113,
-       121,
-       128,
-       129,
-       158,
-       159,
-       172,
-       175,
-       193,
-       202,
-       209,
-       218,
-       221,
-       222,
-       224,
-       225,
-       226,
-       234,
-       235,
-       240,
-       252,
-       253,
-       254,
-       255,
-       256,
-       257,
-       258,
-       259,
-       260,
-       261,
-       262,
-       263,
-       264,
-       265,
-       266,
-       267,
-       268,
-       269,
-       270,
-       271,
-       272,
-       273,
-       274,
-       275,
-       276,
-       277,
-       278,
-       279,
-       280,
-       281,
-       282,
-       283,
-       284,
-       285,
-       286,
-       287,
-       288,
-       289,
-       290,
-       291,
-       292,
-       293,
-       294,
-       295,
-       296,
-       297,
-       298,
-       299,
-       300,
-       301,
-       302,
-       303,
-       304,
-       305,
-       306,
-       307,
-       308,
-       309,
-       310,
-       311,
-       313,
-       314,
-       315,
-       316,
-       317,
-       318,
-       319,
-       320,
-       321,
-       322,
-       323,
-       324,
-       325,
-       326,
-       327,
-       328,
-       330,
-       331,
-       332,
-       333,
-       334,
-       335,
-       336,
-       337,
-       338,
-       339,
-       340,
-       341,
-       342,
-       343,
-       344,
-       345,
-       346,
-       347,
-       348,
-       349,
-       350,
-       351,
-       352,
-       353,
-       354,
-       355,
-       356,
-       357,
-       358,
-       359,
-       360,
-       361,
-       362,
-       363,
-       364,
-       365,
-       366,
-       367,
-       368,
-       369,
-       370,
-       371,
-       372,
-       373,
-       374,
-       375,
-       376,
-       378,
-       379,
-       380,
-       381,
-       382,
-       385,
-       387,
-       388,
-       389,
-       390,
-       392,
-       393,
-       396,
-       398,
-       402,
-       403,
-       405,
-       406,
-       409,
-       412,
-       414,
-       415,
-       417,
-       418,
-       419,
-       420,
-       421,
-       422,
-       424,
-       425,
-       426,
-       428,
-       429,
-       430,
-       432,
-       433,
-       436,
-       437,
-       438,
-       439,
-       441,
-       444,
-       445,
-       452,
-       453,
-       455,
-       456,
-       458,
-       459,
-       461,
-       462,
-       463,
-       464,
-       465,
-       466,
-       467,
-       468,
-       469,
-       470,
-       471,
-       472,
-       473,
-       474,
-       475,
-       476,
-       478,
-       479,
-       480,
-       481,
-       482,
-       483,
-       484,
-       485,
-       486,
-       487,
-       488,
-       489,
-       490,
-       491,
-       492,
-       493,
-       494,
-       495,
-       497,
-       498,
-       500,
-       501,
-       502,
-       505,
-       506,
-       507,
-       508,
-       509,
-       510,
-       511,
-       512,
-       513,
-       514,
-       515,
-       516,
-       517,
-       518,
-       519,
-       520,
-       521,
-       522,
-       523,
-       524,
-       525,
-       526,
-       527,
-       528,
-       529,
-       530,
-       531,
-       532,
-       533,
-       534,
-       535,
-       536,
-       537,
-       538,
-       539,
-       540,
-       541,
-       542,
-       543,
-       544,
-       545,
-       546,
-       547,
-       548,
-       549,
-       550,
-       551,
-       552,
-       553,
-       554,
-       555,
-       556,
-       557,
-       558,
-       559,
-       560,
-       561,
-       562,
-       563,
-       570,
-       572,
-       573,
-       575,
-       577,
-       578,
-       579,
-       583,
-       584,
-       585,
-       586,
-       587,
-       588,
-       589,
-       590,
-       591,
-       880,
-       881,
-       882,
-       883,
-       886,
-       887,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       912,
-       913,
-       930,
-       931,
-       940,
-       975,
-       976,
-       978,
-       981,
-       984,
-       985,
-       986,
-       987,
-       988,
-       989,
-       990,
-       991,
-       992,
-       993,
-       994,
-       995,
-       996,
-       997,
-       998,
-       999,
-       1000,
-       1001,
-       1002,
-       1003,
-       1004,
-       1005,
-       1006,
-       1007,
-       1012,
-       1013,
-       1015,
-       1016,
-       1017,
-       1019,
-       1021,
-       1072,
-       1120,
-       1121,
-       1122,
-       1123,
-       1124,
-       1125,
-       1126,
-       1127,
-       1128,
-       1129,
-       1130,
-       1131,
-       1132,
-       1133,
-       1134,
-       1135,
-       1136,
-       1137,
-       1138,
-       1139,
-       1140,
-       1141,
-       1142,
-       1143,
-       1144,
-       1145,
-       1146,
-       1147,
-       1148,
-       1149,
-       1150,
-       1151,
-       1152,
-       1153,
-       1162,
-       1163,
-       1164,
-       1165,
-       1166,
-       1167,
-       1168,
-       1169,
-       1170,
-       1171,
-       1172,
-       1173,
-       1174,
-       1175,
-       1176,
-       1177,
-       1178,
-       1179,
-       1180,
-       1181,
-       1182,
-       1183,
-       1184,
-       1185,
-       1186,
-       1187,
-       1188,
-       1189,
-       1190,
-       1191,
-       1192,
-       1193,
-       1194,
-       1195,
-       1196,
-       1197,
-       1198,
-       1199,
-       1200,
-       1201,
-       1202,
-       1203,
-       1204,
-       1205,
-       1206,
-       1207,
-       1208,
-       1209,
-       1210,
-       1211,
-       1212,
-       1213,
-       1214,
-       1215,
-       1216,
-       1218,
-       1219,
-       1220,
-       1221,
-       1222,
-       1223,
-       1224,
-       1225,
-       1226,
-       1227,
-       1228,
-       1229,
-       1230,
-       1232,
-       1233,
-       1234,
-       1235,
-       1236,
-       1237,
-       1238,
-       1239,
-       1240,
-       1241,
-       1242,
-       1243,
-       1244,
-       1245,
-       1246,
-       1247,
-       1248,
-       1249,
-       1250,
-       1251,
-       1252,
-       1253,
-       1254,
-       1255,
-       1256,
-       1257,
-       1258,
-       1259,
-       1260,
-       1261,
-       1262,
-       1263,
-       1264,
-       1265,
-       1266,
-       1267,
-       1268,
-       1269,
-       1270,
-       1271,
-       1272,
-       1273,
-       1274,
-       1275,
-       1276,
-       1277,
-       1278,
-       1279,
-       1280,
-       1281,
-       1282,
-       1283,
-       1284,
-       1285,
-       1286,
-       1287,
-       1288,
-       1289,
-       1290,
-       1291,
-       1292,
-       1293,
-       1294,
-       1295,
-       1296,
-       1297,
-       1298,
-       1299,
-       1300,
-       1301,
-       1302,
-       1303,
-       1304,
-       1305,
-       1306,
-       1307,
-       1308,
-       1309,
-       1310,
-       1311,
-       1312,
-       1313,
-       1314,
-       1315,
-       1316,
-       1317,
-       1318,
-       1319,
-       1320,
-       1321,
-       1322,
-       1323,
-       1324,
-       1325,
-       1326,
-       1327,
-       1329,
-       1367,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       7680,
-       7681,
-       7682,
-       7683,
-       7684,
-       7685,
-       7686,
-       7687,
-       7688,
-       7689,
-       7690,
-       7691,
-       7692,
-       7693,
-       7694,
-       7695,
-       7696,
-       7697,
-       7698,
-       7699,
-       7700,
-       7701,
-       7702,
-       7703,
-       7704,
-       7705,
-       7706,
-       7707,
-       7708,
-       7709,
-       7710,
-       7711,
-       7712,
-       7713,
-       7714,
-       7715,
-       7716,
-       7717,
-       7718,
-       7719,
-       7720,
-       7721,
-       7722,
-       7723,
-       7724,
-       7725,
-       7726,
-       7727,
-       7728,
-       7729,
-       7730,
-       7731,
-       7732,
-       7733,
-       7734,
-       7735,
-       7736,
-       7737,
-       7738,
-       7739,
-       7740,
-       7741,
-       7742,
-       7743,
-       7744,
-       7745,
-       7746,
-       7747,
-       7748,
-       7749,
-       7750,
-       7751,
-       7752,
-       7753,
-       7754,
-       7755,
-       7756,
-       7757,
-       7758,
-       7759,
-       7760,
-       7761,
-       7762,
-       7763,
-       7764,
-       7765,
-       7766,
-       7767,
-       7768,
-       7769,
-       7770,
-       7771,
-       7772,
-       7773,
-       7774,
-       7775,
-       7776,
-       7777,
-       7778,
-       7779,
-       7780,
-       7781,
-       7782,
-       7783,
-       7784,
-       7785,
-       7786,
-       7787,
-       7788,
-       7789,
-       7790,
-       7791,
-       7792,
-       7793,
-       7794,
-       7795,
-       7796,
-       7797,
-       7798,
-       7799,
-       7800,
-       7801,
-       7802,
-       7803,
-       7804,
-       7805,
-       7806,
-       7807,
-       7808,
-       7809,
-       7810,
-       7811,
-       7812,
-       7813,
-       7814,
-       7815,
-       7816,
-       7817,
-       7818,
-       7819,
-       7820,
-       7821,
-       7822,
-       7823,
-       7824,
-       7825,
-       7826,
-       7827,
-       7828,
-       7829,
-       7838,
-       7839,
-       7840,
-       7841,
-       7842,
-       7843,
-       7844,
-       7845,
-       7846,
-       7847,
-       7848,
-       7849,
-       7850,
-       7851,
-       7852,
-       7853,
-       7854,
-       7855,
-       7856,
-       7857,
-       7858,
-       7859,
-       7860,
-       7861,
-       7862,
-       7863,
-       7864,
-       7865,
-       7866,
-       7867,
-       7868,
-       7869,
-       7870,
-       7871,
-       7872,
-       7873,
-       7874,
-       7875,
-       7876,
-       7877,
-       7878,
-       7879,
-       7880,
-       7881,
-       7882,
-       7883,
-       7884,
-       7885,
-       7886,
-       7887,
-       7888,
-       7889,
-       7890,
-       7891,
-       7892,
-       7893,
-       7894,
-       7895,
-       7896,
-       7897,
-       7898,
-       7899,
-       7900,
-       7901,
-       7902,
-       7903,
-       7904,
-       7905,
-       7906,
-       7907,
-       7908,
-       7909,
-       7910,
-       7911,
-       7912,
-       7913,
-       7914,
-       7915,
-       7916,
-       7917,
-       7918,
-       7919,
-       7920,
-       7921,
-       7922,
-       7923,
-       7924,
-       7925,
-       7926,
-       7927,
-       7928,
-       7929,
-       7930,
-       7931,
-       7932,
-       7933,
-       7934,
-       7935,
-       7944,
-       7952,
-       7960,
-       7966,
-       7976,
-       7984,
-       7992,
-       8000,
-       8008,
-       8014,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8032,
-       8040,
-       8048,
-       8120,
-       8124,
-       8136,
-       8140,
-       8152,
-       8156,
-       8168,
-       8173,
-       8184,
-       8188,
-       8450,
-       8451,
-       8455,
-       8456,
-       8459,
-       8462,
-       8464,
-       8467,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8496,
-       8500,
-       8510,
-       8512,
-       8517,
-       8518,
-       8544,
-       8560,
-       8579,
-       8580,
-       9398,
-       9424,
-       11264,
-       11311,
-       11360,
-       11361,
-       11362,
-       11365,
-       11367,
-       11368,
-       11369,
-       11370,
-       11371,
-       11372,
-       11373,
-       11377,
-       11378,
-       11379,
-       11381,
-       11382,
-       11390,
-       11393,
-       11394,
-       11395,
-       11396,
-       11397,
-       11398,
-       11399,
-       11400,
-       11401,
-       11402,
-       11403,
-       11404,
-       11405,
-       11406,
-       11407,
-       11408,
-       11409,
-       11410,
-       11411,
-       11412,
-       11413,
-       11414,
-       11415,
-       11416,
-       11417,
-       11418,
-       11419,
-       11420,
-       11421,
-       11422,
-       11423,
-       11424,
-       11425,
-       11426,
-       11427,
-       11428,
-       11429,
-       11430,
-       11431,
-       11432,
-       11433,
-       11434,
-       11435,
-       11436,
-       11437,
-       11438,
-       11439,
-       11440,
-       11441,
-       11442,
-       11443,
-       11444,
-       11445,
-       11446,
-       11447,
-       11448,
-       11449,
-       11450,
-       11451,
-       11452,
-       11453,
-       11454,
-       11455,
-       11456,
-       11457,
-       11458,
-       11459,
-       11460,
-       11461,
-       11462,
-       11463,
-       11464,
-       11465,
-       11466,
-       11467,
-       11468,
-       11469,
-       11470,
-       11471,
-       11472,
-       11473,
-       11474,
-       11475,
-       11476,
-       11477,
-       11478,
-       11479,
-       11480,
-       11481,
-       11482,
-       11483,
-       11484,
-       11485,
-       11486,
-       11487,
-       11488,
-       11489,
-       11490,
-       11491,
-       11499,
-       11500,
-       11501,
-       11502,
-       11506,
-       11507,
-       42560,
-       42561,
-       42562,
-       42563,
-       42564,
-       42565,
-       42566,
-       42567,
-       42568,
-       42569,
-       42570,
-       42571,
-       42572,
-       42573,
-       42574,
-       42575,
-       42576,
-       42577,
-       42578,
-       42579,
-       42580,
-       42581,
-       42582,
-       42583,
-       42584,
-       42585,
-       42586,
-       42587,
-       42588,
-       42589,
-       42590,
-       42591,
-       42592,
-       42593,
-       42594,
-       42595,
-       42596,
-       42597,
-       42598,
-       42599,
-       42600,
-       42601,
-       42602,
-       42603,
-       42604,
-       42605,
-       42624,
-       42625,
-       42626,
-       42627,
-       42628,
-       42629,
-       42630,
-       42631,
-       42632,
-       42633,
-       42634,
-       42635,
-       42636,
-       42637,
-       42638,
-       42639,
-       42640,
-       42641,
-       42642,
-       42643,
-       42644,
-       42645,
-       42646,
-       42647,
-       42648,
-       42649,
-       42650,
-       42651,
-       42786,
-       42787,
-       42788,
-       42789,
-       42790,
-       42791,
-       42792,
-       42793,
-       42794,
-       42795,
-       42796,
-       42797,
-       42798,
-       42799,
-       42802,
-       42803,
-       42804,
-       42805,
-       42806,
-       42807,
-       42808,
-       42809,
-       42810,
-       42811,
-       42812,
-       42813,
-       42814,
-       42815,
-       42816,
-       42817,
-       42818,
-       42819,
-       42820,
-       42821,
-       42822,
-       42823,
-       42824,
-       42825,
-       42826,
-       42827,
-       42828,
-       42829,
-       42830,
-       42831,
-       42832,
-       42833,
-       42834,
-       42835,
-       42836,
-       42837,
-       42838,
-       42839,
-       42840,
-       42841,
-       42842,
-       42843,
-       42844,
-       42845,
-       42846,
-       42847,
-       42848,
-       42849,
-       42850,
-       42851,
-       42852,
-       42853,
-       42854,
-       42855,
-       42856,
-       42857,
-       42858,
-       42859,
-       42860,
-       42861,
-       42862,
-       42863,
-       42873,
-       42874,
-       42875,
-       42876,
-       42877,
-       42879,
-       42880,
-       42881,
-       42882,
-       42883,
-       42884,
-       42885,
-       42886,
-       42887,
-       42891,
-       42892,
-       42893,
-       42894,
-       42896,
-       42897,
-       42898,
-       42899,
-       42902,
-       42903,
-       42904,
-       42905,
-       42906,
-       42907,
-       42908,
-       42909,
-       42910,
-       42911,
-       42912,
-       42913,
-       42914,
-       42915,
-       42916,
-       42917,
-       42918,
-       42919,
-       42920,
-       42921,
-       42922,
-       42926,
-       42928,
-       42930,
-       65313,
-       65339,
-       66560,
-       66600,
-       71840,
-       71872,
-       119808,
-       119834,
-       119860,
-       119886,
-       119912,
-       119938,
-       119964,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119990,
-       120016,
-       120042,
-       120068,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120120,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120172,
-       120198,
-       120224,
-       120250,
-       120276,
-       120302,
-       120328,
-       120354,
-       120380,
-       120406,
-       120432,
-       120458,
-       120488,
-       120513,
-       120546,
-       120571,
-       120604,
-       120629,
-       120662,
-       120687,
-       120720,
-       120745,
-       120778,
-       120779,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370
+       0x0,
+       0x62,
+       0x6A,
+       0x71,
+       0x79,
+       0x80,
+       0x81,
+       0x9E,
+       0x9F,
+       0xAC,
+       0xAF,
+       0xC1,
+       0xCA,
+       0xD1,
+       0xDA,
+       0xDD,
+       0xDE,
+       0xE0,
+       0xE1,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFC,
+       0xFD,
+       0xFE,
+       0xFF,
+       0x100,
+       0x101,
+       0x102,
+       0x103,
+       0x104,
+       0x105,
+       0x106,
+       0x107,
+       0x108,
+       0x109,
+       0x10A,
+       0x10B,
+       0x10C,
+       0x10D,
+       0x10E,
+       0x10F,
+       0x110,
+       0x111,
+       0x112,
+       0x113,
+       0x114,
+       0x115,
+       0x116,
+       0x117,
+       0x118,
+       0x119,
+       0x11A,
+       0x11B,
+       0x11C,
+       0x11D,
+       0x11E,
+       0x11F,
+       0x120,
+       0x121,
+       0x122,
+       0x123,
+       0x124,
+       0x125,
+       0x126,
+       0x127,
+       0x128,
+       0x129,
+       0x12A,
+       0x12B,
+       0x12C,
+       0x12D,
+       0x12E,
+       0x12F,
+       0x130,
+       0x131,
+       0x132,
+       0x133,
+       0x134,
+       0x135,
+       0x136,
+       0x137,
+       0x139,
+       0x13A,
+       0x13B,
+       0x13C,
+       0x13D,
+       0x13E,
+       0x13F,
+       0x140,
+       0x141,
+       0x142,
+       0x143,
+       0x144,
+       0x145,
+       0x146,
+       0x147,
+       0x148,
+       0x14A,
+       0x14B,
+       0x14C,
+       0x14D,
+       0x14E,
+       0x14F,
+       0x150,
+       0x151,
+       0x152,
+       0x153,
+       0x154,
+       0x155,
+       0x156,
+       0x157,
+       0x158,
+       0x159,
+       0x15A,
+       0x15B,
+       0x15C,
+       0x15D,
+       0x15E,
+       0x15F,
+       0x160,
+       0x161,
+       0x162,
+       0x163,
+       0x164,
+       0x165,
+       0x166,
+       0x167,
+       0x168,
+       0x169,
+       0x16A,
+       0x16B,
+       0x16C,
+       0x16D,
+       0x16E,
+       0x16F,
+       0x170,
+       0x171,
+       0x172,
+       0x173,
+       0x174,
+       0x175,
+       0x176,
+       0x177,
+       0x178,
+       0x17A,
+       0x17B,
+       0x17C,
+       0x17D,
+       0x17E,
+       0x181,
+       0x183,
+       0x184,
+       0x185,
+       0x186,
+       0x188,
+       0x189,
+       0x18C,
+       0x18E,
+       0x192,
+       0x193,
+       0x195,
+       0x196,
+       0x199,
+       0x19C,
+       0x19E,
+       0x19F,
+       0x1A1,
+       0x1A2,
+       0x1A3,
+       0x1A4,
+       0x1A5,
+       0x1A6,
+       0x1A8,
+       0x1A9,
+       0x1AA,
+       0x1AC,
+       0x1AD,
+       0x1AE,
+       0x1B0,
+       0x1B1,
+       0x1B4,
+       0x1B5,
+       0x1B6,
+       0x1B7,
+       0x1B9,
+       0x1BC,
+       0x1BD,
+       0x1C4,
+       0x1C5,
+       0x1C7,
+       0x1C8,
+       0x1CA,
+       0x1CB,
+       0x1CD,
+       0x1CE,
+       0x1CF,
+       0x1D0,
+       0x1D1,
+       0x1D2,
+       0x1D3,
+       0x1D4,
+       0x1D5,
+       0x1D6,
+       0x1D7,
+       0x1D8,
+       0x1D9,
+       0x1DA,
+       0x1DB,
+       0x1DC,
+       0x1DE,
+       0x1DF,
+       0x1E0,
+       0x1E1,
+       0x1E2,
+       0x1E3,
+       0x1E4,
+       0x1E5,
+       0x1E6,
+       0x1E7,
+       0x1E8,
+       0x1E9,
+       0x1EA,
+       0x1EB,
+       0x1EC,
+       0x1ED,
+       0x1EE,
+       0x1EF,
+       0x1F1,
+       0x1F2,
+       0x1F4,
+       0x1F5,
+       0x1F6,
+       0x1F9,
+       0x1FA,
+       0x1FB,
+       0x1FC,
+       0x1FD,
+       0x1FE,
+       0x1FF,
+       0x200,
+       0x201,
+       0x202,
+       0x203,
+       0x204,
+       0x205,
+       0x206,
+       0x207,
+       0x208,
+       0x209,
+       0x20A,
+       0x20B,
+       0x20C,
+       0x20D,
+       0x20E,
+       0x20F,
+       0x210,
+       0x211,
+       0x212,
+       0x213,
+       0x214,
+       0x215,
+       0x216,
+       0x217,
+       0x218,
+       0x219,
+       0x21A,
+       0x21B,
+       0x21C,
+       0x21D,
+       0x21E,
+       0x21F,
+       0x220,
+       0x221,
+       0x222,
+       0x223,
+       0x224,
+       0x225,
+       0x226,
+       0x227,
+       0x228,
+       0x229,
+       0x22A,
+       0x22B,
+       0x22C,
+       0x22D,
+       0x22E,
+       0x22F,
+       0x230,
+       0x231,
+       0x232,
+       0x233,
+       0x23A,
+       0x23C,
+       0x23D,
+       0x23F,
+       0x241,
+       0x242,
+       0x243,
+       0x247,
+       0x248,
+       0x249,
+       0x24A,
+       0x24B,
+       0x24C,
+       0x24D,
+       0x24E,
+       0x24F,
+       0x370,
+       0x371,
+       0x372,
+       0x373,
+       0x376,
+       0x377,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x390,
+       0x391,
+       0x3A2,
+       0x3A3,
+       0x3AC,
+       0x3CF,
+       0x3D0,
+       0x3D2,
+       0x3D5,
+       0x3D8,
+       0x3D9,
+       0x3DA,
+       0x3DB,
+       0x3DC,
+       0x3DD,
+       0x3DE,
+       0x3DF,
+       0x3E0,
+       0x3E1,
+       0x3E2,
+       0x3E3,
+       0x3E4,
+       0x3E5,
+       0x3E6,
+       0x3E7,
+       0x3E8,
+       0x3E9,
+       0x3EA,
+       0x3EB,
+       0x3EC,
+       0x3ED,
+       0x3EE,
+       0x3EF,
+       0x3F4,
+       0x3F5,
+       0x3F7,
+       0x3F8,
+       0x3F9,
+       0x3FB,
+       0x3FD,
+       0x430,
+       0x460,
+       0x461,
+       0x462,
+       0x463,
+       0x464,
+       0x465,
+       0x466,
+       0x467,
+       0x468,
+       0x469,
+       0x46A,
+       0x46B,
+       0x46C,
+       0x46D,
+       0x46E,
+       0x46F,
+       0x470,
+       0x471,
+       0x472,
+       0x473,
+       0x474,
+       0x475,
+       0x476,
+       0x477,
+       0x478,
+       0x479,
+       0x47A,
+       0x47B,
+       0x47C,
+       0x47D,
+       0x47E,
+       0x47F,
+       0x480,
+       0x481,
+       0x48A,
+       0x48B,
+       0x48C,
+       0x48D,
+       0x48E,
+       0x48F,
+       0x490,
+       0x491,
+       0x492,
+       0x493,
+       0x494,
+       0x495,
+       0x496,
+       0x497,
+       0x498,
+       0x499,
+       0x49A,
+       0x49B,
+       0x49C,
+       0x49D,
+       0x49E,
+       0x49F,
+       0x4A0,
+       0x4A1,
+       0x4A2,
+       0x4A3,
+       0x4A4,
+       0x4A5,
+       0x4A6,
+       0x4A7,
+       0x4A8,
+       0x4A9,
+       0x4AA,
+       0x4AB,
+       0x4AC,
+       0x4AD,
+       0x4AE,
+       0x4AF,
+       0x4B0,
+       0x4B1,
+       0x4B2,
+       0x4B3,
+       0x4B4,
+       0x4B5,
+       0x4B6,
+       0x4B7,
+       0x4B8,
+       0x4B9,
+       0x4BA,
+       0x4BB,
+       0x4BC,
+       0x4BD,
+       0x4BE,
+       0x4BF,
+       0x4C0,
+       0x4C2,
+       0x4C3,
+       0x4C4,
+       0x4C5,
+       0x4C6,
+       0x4C7,
+       0x4C8,
+       0x4C9,
+       0x4CA,
+       0x4CB,
+       0x4CC,
+       0x4CD,
+       0x4CE,
+       0x4D0,
+       0x4D1,
+       0x4D2,
+       0x4D3,
+       0x4D4,
+       0x4D5,
+       0x4D6,
+       0x4D7,
+       0x4D8,
+       0x4D9,
+       0x4DA,
+       0x4DB,
+       0x4DC,
+       0x4DD,
+       0x4DE,
+       0x4DF,
+       0x4E0,
+       0x4E1,
+       0x4E2,
+       0x4E3,
+       0x4E4,
+       0x4E5,
+       0x4E6,
+       0x4E7,
+       0x4E8,
+       0x4E9,
+       0x4EA,
+       0x4EB,
+       0x4EC,
+       0x4ED,
+       0x4EE,
+       0x4EF,
+       0x4F0,
+       0x4F1,
+       0x4F2,
+       0x4F3,
+       0x4F4,
+       0x4F5,
+       0x4F6,
+       0x4F7,
+       0x4F8,
+       0x4F9,
+       0x4FA,
+       0x4FB,
+       0x4FC,
+       0x4FD,
+       0x4FE,
+       0x4FF,
+       0x500,
+       0x501,
+       0x502,
+       0x503,
+       0x504,
+       0x505,
+       0x506,
+       0x507,
+       0x508,
+       0x509,
+       0x50A,
+       0x50B,
+       0x50C,
+       0x50D,
+       0x50E,
+       0x50F,
+       0x510,
+       0x511,
+       0x512,
+       0x513,
+       0x514,
+       0x515,
+       0x516,
+       0x517,
+       0x518,
+       0x519,
+       0x51A,
+       0x51B,
+       0x51C,
+       0x51D,
+       0x51E,
+       0x51F,
+       0x520,
+       0x521,
+       0x522,
+       0x523,
+       0x524,
+       0x525,
+       0x526,
+       0x527,
+       0x528,
+       0x529,
+       0x52A,
+       0x52B,
+       0x52C,
+       0x52D,
+       0x52E,
+       0x52F,
+       0x531,
+       0x557,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x1E00,
+       0x1E01,
+       0x1E02,
+       0x1E03,
+       0x1E04,
+       0x1E05,
+       0x1E06,
+       0x1E07,
+       0x1E08,
+       0x1E09,
+       0x1E0A,
+       0x1E0B,
+       0x1E0C,
+       0x1E0D,
+       0x1E0E,
+       0x1E0F,
+       0x1E10,
+       0x1E11,
+       0x1E12,
+       0x1E13,
+       0x1E14,
+       0x1E15,
+       0x1E16,
+       0x1E17,
+       0x1E18,
+       0x1E19,
+       0x1E1A,
+       0x1E1B,
+       0x1E1C,
+       0x1E1D,
+       0x1E1E,
+       0x1E1F,
+       0x1E20,
+       0x1E21,
+       0x1E22,
+       0x1E23,
+       0x1E24,
+       0x1E25,
+       0x1E26,
+       0x1E27,
+       0x1E28,
+       0x1E29,
+       0x1E2A,
+       0x1E2B,
+       0x1E2C,
+       0x1E2D,
+       0x1E2E,
+       0x1E2F,
+       0x1E30,
+       0x1E31,
+       0x1E32,
+       0x1E33,
+       0x1E34,
+       0x1E35,
+       0x1E36,
+       0x1E37,
+       0x1E38,
+       0x1E39,
+       0x1E3A,
+       0x1E3B,
+       0x1E3C,
+       0x1E3D,
+       0x1E3E,
+       0x1E3F,
+       0x1E40,
+       0x1E41,
+       0x1E42,
+       0x1E43,
+       0x1E44,
+       0x1E45,
+       0x1E46,
+       0x1E47,
+       0x1E48,
+       0x1E49,
+       0x1E4A,
+       0x1E4B,
+       0x1E4C,
+       0x1E4D,
+       0x1E4E,
+       0x1E4F,
+       0x1E50,
+       0x1E51,
+       0x1E52,
+       0x1E53,
+       0x1E54,
+       0x1E55,
+       0x1E56,
+       0x1E57,
+       0x1E58,
+       0x1E59,
+       0x1E5A,
+       0x1E5B,
+       0x1E5C,
+       0x1E5D,
+       0x1E5E,
+       0x1E5F,
+       0x1E60,
+       0x1E61,
+       0x1E62,
+       0x1E63,
+       0x1E64,
+       0x1E65,
+       0x1E66,
+       0x1E67,
+       0x1E68,
+       0x1E69,
+       0x1E6A,
+       0x1E6B,
+       0x1E6C,
+       0x1E6D,
+       0x1E6E,
+       0x1E6F,
+       0x1E70,
+       0x1E71,
+       0x1E72,
+       0x1E73,
+       0x1E74,
+       0x1E75,
+       0x1E76,
+       0x1E77,
+       0x1E78,
+       0x1E79,
+       0x1E7A,
+       0x1E7B,
+       0x1E7C,
+       0x1E7D,
+       0x1E7E,
+       0x1E7F,
+       0x1E80,
+       0x1E81,
+       0x1E82,
+       0x1E83,
+       0x1E84,
+       0x1E85,
+       0x1E86,
+       0x1E87,
+       0x1E88,
+       0x1E89,
+       0x1E8A,
+       0x1E8B,
+       0x1E8C,
+       0x1E8D,
+       0x1E8E,
+       0x1E8F,
+       0x1E90,
+       0x1E91,
+       0x1E92,
+       0x1E93,
+       0x1E94,
+       0x1E95,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1EA1,
+       0x1EA2,
+       0x1EA3,
+       0x1EA4,
+       0x1EA5,
+       0x1EA6,
+       0x1EA7,
+       0x1EA8,
+       0x1EA9,
+       0x1EAA,
+       0x1EAB,
+       0x1EAC,
+       0x1EAD,
+       0x1EAE,
+       0x1EAF,
+       0x1EB0,
+       0x1EB1,
+       0x1EB2,
+       0x1EB3,
+       0x1EB4,
+       0x1EB5,
+       0x1EB6,
+       0x1EB7,
+       0x1EB8,
+       0x1EB9,
+       0x1EBA,
+       0x1EBB,
+       0x1EBC,
+       0x1EBD,
+       0x1EBE,
+       0x1EBF,
+       0x1EC0,
+       0x1EC1,
+       0x1EC2,
+       0x1EC3,
+       0x1EC4,
+       0x1EC5,
+       0x1EC6,
+       0x1EC7,
+       0x1EC8,
+       0x1EC9,
+       0x1ECA,
+       0x1ECB,
+       0x1ECC,
+       0x1ECD,
+       0x1ECE,
+       0x1ECF,
+       0x1ED0,
+       0x1ED1,
+       0x1ED2,
+       0x1ED3,
+       0x1ED4,
+       0x1ED5,
+       0x1ED6,
+       0x1ED7,
+       0x1ED8,
+       0x1ED9,
+       0x1EDA,
+       0x1EDB,
+       0x1EDC,
+       0x1EDD,
+       0x1EDE,
+       0x1EDF,
+       0x1EE0,
+       0x1EE1,
+       0x1EE2,
+       0x1EE3,
+       0x1EE4,
+       0x1EE5,
+       0x1EE6,
+       0x1EE7,
+       0x1EE8,
+       0x1EE9,
+       0x1EEA,
+       0x1EEB,
+       0x1EEC,
+       0x1EED,
+       0x1EEE,
+       0x1EEF,
+       0x1EF0,
+       0x1EF1,
+       0x1EF2,
+       0x1EF3,
+       0x1EF4,
+       0x1EF5,
+       0x1EF6,
+       0x1EF7,
+       0x1EF8,
+       0x1EF9,
+       0x1EFA,
+       0x1EFB,
+       0x1EFC,
+       0x1EFD,
+       0x1EFE,
+       0x1EFF,
+       0x1F08,
+       0x1F10,
+       0x1F18,
+       0x1F1E,
+       0x1F28,
+       0x1F30,
+       0x1F38,
+       0x1F40,
+       0x1F48,
+       0x1F4E,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1FB8,
+       0x1FBC,
+       0x1FC8,
+       0x1FCC,
+       0x1FD8,
+       0x1FDC,
+       0x1FE8,
+       0x1FED,
+       0x1FF8,
+       0x1FFC,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210B,
+       0x210E,
+       0x2110,
+       0x2113,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x2130,
+       0x2134,
+       0x213E,
+       0x2140,
+       0x2145,
+       0x2146,
+       0x2160,
+       0x2170,
+       0x2183,
+       0x2184,
+       0x24B6,
+       0x24D0,
+       0x2C00,
+       0x2C2F,
+       0x2C60,
+       0x2C61,
+       0x2C62,
+       0x2C65,
+       0x2C67,
+       0x2C68,
+       0x2C69,
+       0x2C6A,
+       0x2C6B,
+       0x2C6C,
+       0x2C6D,
+       0x2C71,
+       0x2C72,
+       0x2C73,
+       0x2C75,
+       0x2C76,
+       0x2C7E,
+       0x2C81,
+       0x2C82,
+       0x2C83,
+       0x2C84,
+       0x2C85,
+       0x2C86,
+       0x2C87,
+       0x2C88,
+       0x2C89,
+       0x2C8A,
+       0x2C8B,
+       0x2C8C,
+       0x2C8D,
+       0x2C8E,
+       0x2C8F,
+       0x2C90,
+       0x2C91,
+       0x2C92,
+       0x2C93,
+       0x2C94,
+       0x2C95,
+       0x2C96,
+       0x2C97,
+       0x2C98,
+       0x2C99,
+       0x2C9A,
+       0x2C9B,
+       0x2C9C,
+       0x2C9D,
+       0x2C9E,
+       0x2C9F,
+       0x2CA0,
+       0x2CA1,
+       0x2CA2,
+       0x2CA3,
+       0x2CA4,
+       0x2CA5,
+       0x2CA6,
+       0x2CA7,
+       0x2CA8,
+       0x2CA9,
+       0x2CAA,
+       0x2CAB,
+       0x2CAC,
+       0x2CAD,
+       0x2CAE,
+       0x2CAF,
+       0x2CB0,
+       0x2CB1,
+       0x2CB2,
+       0x2CB3,
+       0x2CB4,
+       0x2CB5,
+       0x2CB6,
+       0x2CB7,
+       0x2CB8,
+       0x2CB9,
+       0x2CBA,
+       0x2CBB,
+       0x2CBC,
+       0x2CBD,
+       0x2CBE,
+       0x2CBF,
+       0x2CC0,
+       0x2CC1,
+       0x2CC2,
+       0x2CC3,
+       0x2CC4,
+       0x2CC5,
+       0x2CC6,
+       0x2CC7,
+       0x2CC8,
+       0x2CC9,
+       0x2CCA,
+       0x2CCB,
+       0x2CCC,
+       0x2CCD,
+       0x2CCE,
+       0x2CCF,
+       0x2CD0,
+       0x2CD1,
+       0x2CD2,
+       0x2CD3,
+       0x2CD4,
+       0x2CD5,
+       0x2CD6,
+       0x2CD7,
+       0x2CD8,
+       0x2CD9,
+       0x2CDA,
+       0x2CDB,
+       0x2CDC,
+       0x2CDD,
+       0x2CDE,
+       0x2CDF,
+       0x2CE0,
+       0x2CE1,
+       0x2CE2,
+       0x2CE3,
+       0x2CEB,
+       0x2CEC,
+       0x2CED,
+       0x2CEE,
+       0x2CF2,
+       0x2CF3,
+       0xA640,
+       0xA641,
+       0xA642,
+       0xA643,
+       0xA644,
+       0xA645,
+       0xA646,
+       0xA647,
+       0xA648,
+       0xA649,
+       0xA64A,
+       0xA64B,
+       0xA64C,
+       0xA64D,
+       0xA64E,
+       0xA64F,
+       0xA650,
+       0xA651,
+       0xA652,
+       0xA653,
+       0xA654,
+       0xA655,
+       0xA656,
+       0xA657,
+       0xA658,
+       0xA659,
+       0xA65A,
+       0xA65B,
+       0xA65C,
+       0xA65D,
+       0xA65E,
+       0xA65F,
+       0xA660,
+       0xA661,
+       0xA662,
+       0xA663,
+       0xA664,
+       0xA665,
+       0xA666,
+       0xA667,
+       0xA668,
+       0xA669,
+       0xA66A,
+       0xA66B,
+       0xA66C,
+       0xA66D,
+       0xA680,
+       0xA681,
+       0xA682,
+       0xA683,
+       0xA684,
+       0xA685,
+       0xA686,
+       0xA687,
+       0xA688,
+       0xA689,
+       0xA68A,
+       0xA68B,
+       0xA68C,
+       0xA68D,
+       0xA68E,
+       0xA68F,
+       0xA690,
+       0xA691,
+       0xA692,
+       0xA693,
+       0xA694,
+       0xA695,
+       0xA696,
+       0xA697,
+       0xA698,
+       0xA699,
+       0xA69A,
+       0xA69B,
+       0xA722,
+       0xA723,
+       0xA724,
+       0xA725,
+       0xA726,
+       0xA727,
+       0xA728,
+       0xA729,
+       0xA72A,
+       0xA72B,
+       0xA72C,
+       0xA72D,
+       0xA72E,
+       0xA72F,
+       0xA732,
+       0xA733,
+       0xA734,
+       0xA735,
+       0xA736,
+       0xA737,
+       0xA738,
+       0xA739,
+       0xA73A,
+       0xA73B,
+       0xA73C,
+       0xA73D,
+       0xA73E,
+       0xA73F,
+       0xA740,
+       0xA741,
+       0xA742,
+       0xA743,
+       0xA744,
+       0xA745,
+       0xA746,
+       0xA747,
+       0xA748,
+       0xA749,
+       0xA74A,
+       0xA74B,
+       0xA74C,
+       0xA74D,
+       0xA74E,
+       0xA74F,
+       0xA750,
+       0xA751,
+       0xA752,
+       0xA753,
+       0xA754,
+       0xA755,
+       0xA756,
+       0xA757,
+       0xA758,
+       0xA759,
+       0xA75A,
+       0xA75B,
+       0xA75C,
+       0xA75D,
+       0xA75E,
+       0xA75F,
+       0xA760,
+       0xA761,
+       0xA762,
+       0xA763,
+       0xA764,
+       0xA765,
+       0xA766,
+       0xA767,
+       0xA768,
+       0xA769,
+       0xA76A,
+       0xA76B,
+       0xA76C,
+       0xA76D,
+       0xA76E,
+       0xA76F,
+       0xA779,
+       0xA77A,
+       0xA77B,
+       0xA77C,
+       0xA77D,
+       0xA77F,
+       0xA780,
+       0xA781,
+       0xA782,
+       0xA783,
+       0xA784,
+       0xA785,
+       0xA786,
+       0xA787,
+       0xA78B,
+       0xA78C,
+       0xA78D,
+       0xA78E,
+       0xA790,
+       0xA791,
+       0xA792,
+       0xA793,
+       0xA796,
+       0xA797,
+       0xA798,
+       0xA799,
+       0xA79A,
+       0xA79B,
+       0xA79C,
+       0xA79D,
+       0xA79E,
+       0xA79F,
+       0xA7A0,
+       0xA7A1,
+       0xA7A2,
+       0xA7A3,
+       0xA7A4,
+       0xA7A5,
+       0xA7A6,
+       0xA7A7,
+       0xA7A8,
+       0xA7A9,
+       0xA7AA,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xFF21,
+       0xFF3B,
+       0x10400,
+       0x10428,
+       0x118A0,
+       0x118C0,
+       0x1D400,
+       0x1D41A,
+       0x1D434,
+       0x1D44E,
+       0x1D468,
+       0x1D482,
+       0x1D49C,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4B6,
+       0x1D4D0,
+       0x1D4EA,
+       0x1D504,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D538,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D56C,
+       0x1D586,
+       0x1D5A0,
+       0x1D5BA,
+       0x1D5D4,
+       0x1D5EE,
+       0x1D608,
+       0x1D622,
+       0x1D63C,
+       0x1D656,
+       0x1D670,
+       0x1D68A,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6E2,
+       0x1D6FB,
+       0x1D71C,
+       0x1D735,
+       0x1D756,
+       0x1D76F,
+       0x1D790,
+       0x1D7A9,
+       0x1D7CA,
+       0x1D7CB,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A
 };
 
 static const UV XPosixWord_invlist[] = { /* for EBCDIC POSIX-BC */
@@ -45911,1289 +95969,1289 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC POSIX-BC */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       109,
-       110,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       175,
-       192,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       225,
-       226,
-       234,
-       235,
-       250,
-       252,
-       253,
-       254,
-       255,
-       256,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       768,
-       885,
-       886,
-       888,
-       890,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1155,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1425,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1480,
-       1488,
-       1515,
-       1520,
-       1523,
-       1552,
-       1563,
-       1568,
-       1642,
-       1646,
-       1748,
-       1749,
-       1757,
-       1759,
-       1769,
-       1770,
-       1789,
-       1791,
-       1792,
-       1808,
-       1867,
-       1869,
-       1970,
-       1984,
-       2038,
-       2042,
-       2043,
-       2048,
-       2094,
-       2112,
-       2140,
-       2208,
-       2227,
-       2276,
-       2404,
-       2406,
-       2416,
-       2417,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2492,
-       2501,
-       2503,
-       2505,
-       2507,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2546,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2620,
-       2621,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2638,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2748,
-       2758,
-       2759,
-       2762,
-       2763,
-       2766,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2800,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2876,
-       2885,
-       2887,
-       2889,
-       2891,
-       2894,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2928,
-       2929,
-       2930,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3022,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3056,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3150,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3260,
-       3269,
-       3270,
-       3273,
-       3274,
-       3278,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3440,
-       3450,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3530,
-       3531,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3572,
-       3585,
-       3643,
-       3648,
-       3663,
-       3664,
-       3674,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3784,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3841,
-       3864,
-       3866,
-       3872,
-       3882,
-       3893,
-       3894,
-       3895,
-       3896,
-       3897,
-       3898,
-       3902,
-       3912,
-       3913,
-       3949,
-       3953,
-       3973,
-       3974,
-       3992,
-       3993,
-       4029,
-       4038,
-       4039,
-       4096,
-       4170,
-       4176,
-       4254,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4957,
-       4960,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5909,
-       5920,
-       5941,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6100,
-       6103,
-       6104,
-       6108,
-       6110,
-       6112,
-       6122,
-       6155,
-       6158,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6460,
-       6470,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6618,
-       6656,
-       6684,
-       6688,
-       6751,
-       6752,
-       6781,
-       6783,
-       6794,
-       6800,
-       6810,
-       6823,
-       6824,
-       6832,
-       6847,
-       6912,
-       6988,
-       6992,
-       7002,
-       7019,
-       7028,
-       7040,
-       7156,
-       7168,
-       7224,
-       7232,
-       7242,
-       7245,
-       7294,
-       7376,
-       7379,
-       7380,
-       7415,
-       7416,
-       7418,
-       7424,
-       7670,
-       7676,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8204,
-       8206,
-       8255,
-       8257,
-       8276,
-       8277,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8400,
-       8433,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11647,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11776,
-       11823,
-       11824,
-       12293,
-       12296,
-       12321,
-       12336,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12441,
-       12443,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42540,
-       42560,
-       42611,
-       42612,
-       42622,
-       42623,
-       42654,
-       42655,
-       42738,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43048,
-       43072,
-       43124,
-       43136,
-       43205,
-       43216,
-       43226,
-       43232,
-       43256,
-       43259,
-       43260,
-       43264,
-       43310,
-       43312,
-       43348,
-       43360,
-       43389,
-       43392,
-       43457,
-       43471,
-       43482,
-       43488,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43616,
-       43639,
-       43642,
-       43715,
-       43739,
-       43742,
-       43744,
-       43760,
-       43762,
-       43767,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44011,
-       44012,
-       44014,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65020,
-       65024,
-       65040,
-       65056,
-       65070,
-       65075,
-       65077,
-       65101,
-       65104,
-       65136,
-       65141,
-       65142,
-       65277,
-       65296,
-       65306,
-       65313,
-       65339,
-       65343,
-       65344,
-       65345,
-       65371,
-       65382,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66045,
-       66046,
-       66176,
-       66205,
-       66208,
-       66257,
-       66272,
-       66273,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68152,
-       68155,
-       68159,
-       68160,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68327,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69632,
-       69703,
-       69734,
-       69744,
-       69759,
-       69819,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69941,
-       69942,
-       69952,
-       69968,
-       70004,
-       70006,
-       70007,
-       70016,
-       70085,
-       70096,
-       70107,
-       70144,
-       70162,
-       70163,
-       70200,
-       70320,
-       70379,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70460,
-       70469,
-       70471,
-       70473,
-       70475,
-       70478,
-       70487,
-       70488,
-       70493,
-       70500,
-       70502,
-       70509,
-       70512,
-       70517,
-       70784,
-       70854,
-       70855,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71105,
-       71168,
-       71233,
-       71236,
-       71237,
-       71248,
-       71258,
-       71296,
-       71352,
-       71360,
-       71370,
-       71840,
-       71914,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92880,
-       92910,
-       92912,
-       92917,
-       92928,
-       92983,
-       92992,
-       92996,
-       93008,
-       93018,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94095,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113821,
-       113823,
-       119141,
-       119146,
-       119149,
-       119155,
-       119163,
-       119171,
-       119173,
-       119180,
-       119210,
-       119214,
-       119362,
-       119365,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       125136,
-       125143,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       127280,
-       127306,
-       127312,
-       127338,
-       127344,
-       127370,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102,
-       917760,
-       918000
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x6D,
+       0x6E,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xC0,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE1,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xFA,
+       0xFC,
+       0xFD,
+       0xFE,
+       0xFF,
+       0x100,
+       0x2C2,
+       0x2C6,
+       0x2D2,
+       0x2E0,
+       0x2E5,
+       0x2EC,
+       0x2ED,
+       0x2EE,
+       0x2EF,
+       0x300,
+       0x375,
+       0x376,
+       0x378,
+       0x37A,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3F6,
+       0x3F7,
+       0x482,
+       0x483,
+       0x530,
+       0x531,
+       0x557,
+       0x559,
+       0x55A,
+       0x561,
+       0x588,
+       0x591,
+       0x5BE,
+       0x5BF,
+       0x5C0,
+       0x5C1,
+       0x5C3,
+       0x5C4,
+       0x5C6,
+       0x5C7,
+       0x5C8,
+       0x5D0,
+       0x5EB,
+       0x5F0,
+       0x5F3,
+       0x610,
+       0x61B,
+       0x620,
+       0x66A,
+       0x66E,
+       0x6D4,
+       0x6D5,
+       0x6DD,
+       0x6DF,
+       0x6E9,
+       0x6EA,
+       0x6FD,
+       0x6FF,
+       0x700,
+       0x710,
+       0x74B,
+       0x74D,
+       0x7B2,
+       0x7C0,
+       0x7F6,
+       0x7FA,
+       0x7FB,
+       0x800,
+       0x82E,
+       0x840,
+       0x85C,
+       0x8A0,
+       0x8B3,
+       0x8E4,
+       0x964,
+       0x966,
+       0x970,
+       0x971,
+       0x984,
+       0x985,
+       0x98D,
+       0x98F,
+       0x991,
+       0x993,
+       0x9A9,
+       0x9AA,
+       0x9B1,
+       0x9B2,
+       0x9B3,
+       0x9B6,
+       0x9BA,
+       0x9BC,
+       0x9C5,
+       0x9C7,
+       0x9C9,
+       0x9CB,
+       0x9CF,
+       0x9D7,
+       0x9D8,
+       0x9DC,
+       0x9DE,
+       0x9DF,
+       0x9E4,
+       0x9E6,
+       0x9F2,
+       0xA01,
+       0xA04,
+       0xA05,
+       0xA0B,
+       0xA0F,
+       0xA11,
+       0xA13,
+       0xA29,
+       0xA2A,
+       0xA31,
+       0xA32,
+       0xA34,
+       0xA35,
+       0xA37,
+       0xA38,
+       0xA3A,
+       0xA3C,
+       0xA3D,
+       0xA3E,
+       0xA43,
+       0xA47,
+       0xA49,
+       0xA4B,
+       0xA4E,
+       0xA51,
+       0xA52,
+       0xA59,
+       0xA5D,
+       0xA5E,
+       0xA5F,
+       0xA66,
+       0xA76,
+       0xA81,
+       0xA84,
+       0xA85,
+       0xA8E,
+       0xA8F,
+       0xA92,
+       0xA93,
+       0xAA9,
+       0xAAA,
+       0xAB1,
+       0xAB2,
+       0xAB4,
+       0xAB5,
+       0xABA,
+       0xABC,
+       0xAC6,
+       0xAC7,
+       0xACA,
+       0xACB,
+       0xACE,
+       0xAD0,
+       0xAD1,
+       0xAE0,
+       0xAE4,
+       0xAE6,
+       0xAF0,
+       0xB01,
+       0xB04,
+       0xB05,
+       0xB0D,
+       0xB0F,
+       0xB11,
+       0xB13,
+       0xB29,
+       0xB2A,
+       0xB31,
+       0xB32,
+       0xB34,
+       0xB35,
+       0xB3A,
+       0xB3C,
+       0xB45,
+       0xB47,
+       0xB49,
+       0xB4B,
+       0xB4E,
+       0xB56,
+       0xB58,
+       0xB5C,
+       0xB5E,
+       0xB5F,
+       0xB64,
+       0xB66,
+       0xB70,
+       0xB71,
+       0xB72,
+       0xB82,
+       0xB84,
+       0xB85,
+       0xB8B,
+       0xB8E,
+       0xB91,
+       0xB92,
+       0xB96,
+       0xB99,
+       0xB9B,
+       0xB9C,
+       0xB9D,
+       0xB9E,
+       0xBA0,
+       0xBA3,
+       0xBA5,
+       0xBA8,
+       0xBAB,
+       0xBAE,
+       0xBBA,
+       0xBBE,
+       0xBC3,
+       0xBC6,
+       0xBC9,
+       0xBCA,
+       0xBCE,
+       0xBD0,
+       0xBD1,
+       0xBD7,
+       0xBD8,
+       0xBE6,
+       0xBF0,
+       0xC00,
+       0xC04,
+       0xC05,
+       0xC0D,
+       0xC0E,
+       0xC11,
+       0xC12,
+       0xC29,
+       0xC2A,
+       0xC3A,
+       0xC3D,
+       0xC45,
+       0xC46,
+       0xC49,
+       0xC4A,
+       0xC4E,
+       0xC55,
+       0xC57,
+       0xC58,
+       0xC5A,
+       0xC60,
+       0xC64,
+       0xC66,
+       0xC70,
+       0xC81,
+       0xC84,
+       0xC85,
+       0xC8D,
+       0xC8E,
+       0xC91,
+       0xC92,
+       0xCA9,
+       0xCAA,
+       0xCB4,
+       0xCB5,
+       0xCBA,
+       0xCBC,
+       0xCC5,
+       0xCC6,
+       0xCC9,
+       0xCCA,
+       0xCCE,
+       0xCD5,
+       0xCD7,
+       0xCDE,
+       0xCDF,
+       0xCE0,
+       0xCE4,
+       0xCE6,
+       0xCF0,
+       0xCF1,
+       0xCF3,
+       0xD01,
+       0xD04,
+       0xD05,
+       0xD0D,
+       0xD0E,
+       0xD11,
+       0xD12,
+       0xD3B,
+       0xD3D,
+       0xD45,
+       0xD46,
+       0xD49,
+       0xD4A,
+       0xD4F,
+       0xD57,
+       0xD58,
+       0xD60,
+       0xD64,
+       0xD66,
+       0xD70,
+       0xD7A,
+       0xD80,
+       0xD82,
+       0xD84,
+       0xD85,
+       0xD97,
+       0xD9A,
+       0xDB2,
+       0xDB3,
+       0xDBC,
+       0xDBD,
+       0xDBE,
+       0xDC0,
+       0xDC7,
+       0xDCA,
+       0xDCB,
+       0xDCF,
+       0xDD5,
+       0xDD6,
+       0xDD7,
+       0xDD8,
+       0xDE0,
+       0xDE6,
+       0xDF0,
+       0xDF2,
+       0xDF4,
+       0xE01,
+       0xE3B,
+       0xE40,
+       0xE4F,
+       0xE50,
+       0xE5A,
+       0xE81,
+       0xE83,
+       0xE84,
+       0xE85,
+       0xE87,
+       0xE89,
+       0xE8A,
+       0xE8B,
+       0xE8D,
+       0xE8E,
+       0xE94,
+       0xE98,
+       0xE99,
+       0xEA0,
+       0xEA1,
+       0xEA4,
+       0xEA5,
+       0xEA6,
+       0xEA7,
+       0xEA8,
+       0xEAA,
+       0xEAC,
+       0xEAD,
+       0xEBA,
+       0xEBB,
+       0xEBE,
+       0xEC0,
+       0xEC5,
+       0xEC6,
+       0xEC7,
+       0xEC8,
+       0xECE,
+       0xED0,
+       0xEDA,
+       0xEDC,
+       0xEE0,
+       0xF00,
+       0xF01,
+       0xF18,
+       0xF1A,
+       0xF20,
+       0xF2A,
+       0xF35,
+       0xF36,
+       0xF37,
+       0xF38,
+       0xF39,
+       0xF3A,
+       0xF3E,
+       0xF48,
+       0xF49,
+       0xF6D,
+       0xF71,
+       0xF85,
+       0xF86,
+       0xF98,
+       0xF99,
+       0xFBD,
+       0xFC6,
+       0xFC7,
+       0x1000,
+       0x104A,
+       0x1050,
+       0x109E,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x10D0,
+       0x10FB,
+       0x10FC,
+       0x1249,
+       0x124A,
+       0x124E,
+       0x1250,
+       0x1257,
+       0x1258,
+       0x1259,
+       0x125A,
+       0x125E,
+       0x1260,
+       0x1289,
+       0x128A,
+       0x128E,
+       0x1290,
+       0x12B1,
+       0x12B2,
+       0x12B6,
+       0x12B8,
+       0x12BF,
+       0x12C0,
+       0x12C1,
+       0x12C2,
+       0x12C6,
+       0x12C8,
+       0x12D7,
+       0x12D8,
+       0x1311,
+       0x1312,
+       0x1316,
+       0x1318,
+       0x135B,
+       0x135D,
+       0x1360,
+       0x1380,
+       0x1390,
+       0x13A0,
+       0x13F5,
+       0x1401,
+       0x166D,
+       0x166F,
+       0x1680,
+       0x1681,
+       0x169B,
+       0x16A0,
+       0x16EB,
+       0x16EE,
+       0x16F9,
+       0x1700,
+       0x170D,
+       0x170E,
+       0x1715,
+       0x1720,
+       0x1735,
+       0x1740,
+       0x1754,
+       0x1760,
+       0x176D,
+       0x176E,
+       0x1771,
+       0x1772,
+       0x1774,
+       0x1780,
+       0x17D4,
+       0x17D7,
+       0x17D8,
+       0x17DC,
+       0x17DE,
+       0x17E0,
+       0x17EA,
+       0x180B,
+       0x180E,
+       0x1810,
+       0x181A,
+       0x1820,
+       0x1878,
+       0x1880,
+       0x18AB,
+       0x18B0,
+       0x18F6,
+       0x1900,
+       0x191F,
+       0x1920,
+       0x192C,
+       0x1930,
+       0x193C,
+       0x1946,
+       0x196E,
+       0x1970,
+       0x1975,
+       0x1980,
+       0x19AC,
+       0x19B0,
+       0x19CA,
+       0x19D0,
+       0x19DA,
+       0x1A00,
+       0x1A1C,
+       0x1A20,
+       0x1A5F,
+       0x1A60,
+       0x1A7D,
+       0x1A7F,
+       0x1A8A,
+       0x1A90,
+       0x1A9A,
+       0x1AA7,
+       0x1AA8,
+       0x1AB0,
+       0x1ABF,
+       0x1B00,
+       0x1B4C,
+       0x1B50,
+       0x1B5A,
+       0x1B6B,
+       0x1B74,
+       0x1B80,
+       0x1BF4,
+       0x1C00,
+       0x1C38,
+       0x1C40,
+       0x1C4A,
+       0x1C4D,
+       0x1C7E,
+       0x1CD0,
+       0x1CD3,
+       0x1CD4,
+       0x1CF7,
+       0x1CF8,
+       0x1CFA,
+       0x1D00,
+       0x1DF6,
+       0x1DFC,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x200C,
+       0x200E,
+       0x203F,
+       0x2041,
+       0x2054,
+       0x2055,
+       0x2071,
+       0x2072,
+       0x207F,
+       0x2080,
+       0x2090,
+       0x209D,
+       0x20D0,
+       0x20F1,
+       0x2102,
+       0x2103,
+       0x2107,
+       0x2108,
+       0x210A,
+       0x2114,
+       0x2115,
+       0x2116,
+       0x2119,
+       0x211E,
+       0x2124,
+       0x2125,
+       0x2126,
+       0x2127,
+       0x2128,
+       0x2129,
+       0x212A,
+       0x212E,
+       0x212F,
+       0x213A,
+       0x213C,
+       0x2140,
+       0x2145,
+       0x214A,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2189,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2CE5,
+       0x2CEB,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0x2D30,
+       0x2D68,
+       0x2D6F,
+       0x2D70,
+       0x2D7F,
+       0x2D97,
+       0x2DA0,
+       0x2DA7,
+       0x2DA8,
+       0x2DAF,
+       0x2DB0,
+       0x2DB7,
+       0x2DB8,
+       0x2DBF,
+       0x2DC0,
+       0x2DC7,
+       0x2DC8,
+       0x2DCF,
+       0x2DD0,
+       0x2DD7,
+       0x2DD8,
+       0x2DDF,
+       0x2DE0,
+       0x2E00,
+       0x2E2F,
+       0x2E30,
+       0x3005,
+       0x3008,
+       0x3021,
+       0x3030,
+       0x3031,
+       0x3036,
+       0x3038,
+       0x303D,
+       0x3041,
+       0x3097,
+       0x3099,
+       0x309B,
+       0x309D,
+       0x30A0,
+       0x30A1,
+       0x30FB,
+       0x30FC,
+       0x3100,
+       0x3105,
+       0x312E,
+       0x3131,
+       0x318F,
+       0x31A0,
+       0x31BB,
+       0x31F0,
+       0x3200,
+       0x3400,
+       0x4DB6,
+       0x4E00,
+       0x9FCD,
+       0xA000,
+       0xA48D,
+       0xA4D0,
+       0xA4FE,
+       0xA500,
+       0xA60D,
+       0xA610,
+       0xA62C,
+       0xA640,
+       0xA673,
+       0xA674,
+       0xA67E,
+       0xA67F,
+       0xA69E,
+       0xA69F,
+       0xA6F2,
+       0xA717,
+       0xA720,
+       0xA722,
+       0xA789,
+       0xA78B,
+       0xA78F,
+       0xA790,
+       0xA7AE,
+       0xA7B0,
+       0xA7B2,
+       0xA7F7,
+       0xA828,
+       0xA840,
+       0xA874,
+       0xA880,
+       0xA8C5,
+       0xA8D0,
+       0xA8DA,
+       0xA8E0,
+       0xA8F8,
+       0xA8FB,
+       0xA8FC,
+       0xA900,
+       0xA92E,
+       0xA930,
+       0xA954,
+       0xA960,
+       0xA97D,
+       0xA980,
+       0xA9C1,
+       0xA9CF,
+       0xA9DA,
+       0xA9E0,
+       0xA9FF,
+       0xAA00,
+       0xAA37,
+       0xAA40,
+       0xAA4E,
+       0xAA50,
+       0xAA5A,
+       0xAA60,
+       0xAA77,
+       0xAA7A,
+       0xAAC3,
+       0xAADB,
+       0xAADE,
+       0xAAE0,
+       0xAAF0,
+       0xAAF2,
+       0xAAF7,
+       0xAB01,
+       0xAB07,
+       0xAB09,
+       0xAB0F,
+       0xAB11,
+       0xAB17,
+       0xAB20,
+       0xAB27,
+       0xAB28,
+       0xAB2F,
+       0xAB30,
+       0xAB5B,
+       0xAB5C,
+       0xAB60,
+       0xAB64,
+       0xAB66,
+       0xABC0,
+       0xABEB,
+       0xABEC,
+       0xABEE,
+       0xABF0,
+       0xABFA,
+       0xAC00,
+       0xD7A4,
+       0xD7B0,
+       0xD7C7,
+       0xD7CB,
+       0xD7FC,
+       0xF900,
+       0xFA6E,
+       0xFA70,
+       0xFADA,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFB1D,
+       0xFB29,
+       0xFB2A,
+       0xFB37,
+       0xFB38,
+       0xFB3D,
+       0xFB3E,
+       0xFB3F,
+       0xFB40,
+       0xFB42,
+       0xFB43,
+       0xFB45,
+       0xFB46,
+       0xFBB2,
+       0xFBD3,
+       0xFD3E,
+       0xFD50,
+       0xFD90,
+       0xFD92,
+       0xFDC8,
+       0xFDF0,
+       0xFDFC,
+       0xFE00,
+       0xFE10,
+       0xFE20,
+       0xFE2E,
+       0xFE33,
+       0xFE35,
+       0xFE4D,
+       0xFE50,
+       0xFE70,
+       0xFE75,
+       0xFE76,
+       0xFEFD,
+       0xFF10,
+       0xFF1A,
+       0xFF21,
+       0xFF3B,
+       0xFF3F,
+       0xFF40,
+       0xFF41,
+       0xFF5B,
+       0xFF66,
+       0xFFBF,
+       0xFFC2,
+       0xFFC8,
+       0xFFCA,
+       0xFFD0,
+       0xFFD2,
+       0xFFD8,
+       0xFFDA,
+       0xFFDD,
+       0x10000,
+       0x1000C,
+       0x1000D,
+       0x10027,
+       0x10028,
+       0x1003B,
+       0x1003C,
+       0x1003E,
+       0x1003F,
+       0x1004E,
+       0x10050,
+       0x1005E,
+       0x10080,
+       0x100FB,
+       0x10140,
+       0x10175,
+       0x101FD,
+       0x101FE,
+       0x10280,
+       0x1029D,
+       0x102A0,
+       0x102D1,
+       0x102E0,
+       0x102E1,
+       0x10300,
+       0x10320,
+       0x10330,
+       0x1034B,
+       0x10350,
+       0x1037B,
+       0x10380,
+       0x1039E,
+       0x103A0,
+       0x103C4,
+       0x103C8,
+       0x103D0,
+       0x103D1,
+       0x103D6,
+       0x10400,
+       0x1049E,
+       0x104A0,
+       0x104AA,
+       0x10500,
+       0x10528,
+       0x10530,
+       0x10564,
+       0x10600,
+       0x10737,
+       0x10740,
+       0x10756,
+       0x10760,
+       0x10768,
+       0x10800,
+       0x10806,
+       0x10808,
+       0x10809,
+       0x1080A,
+       0x10836,
+       0x10837,
+       0x10839,
+       0x1083C,
+       0x1083D,
+       0x1083F,
+       0x10856,
+       0x10860,
+       0x10877,
+       0x10880,
+       0x1089F,
+       0x10900,
+       0x10916,
+       0x10920,
+       0x1093A,
+       0x10980,
+       0x109B8,
+       0x109BE,
+       0x109C0,
+       0x10A00,
+       0x10A04,
+       0x10A05,
+       0x10A07,
+       0x10A0C,
+       0x10A14,
+       0x10A15,
+       0x10A18,
+       0x10A19,
+       0x10A34,
+       0x10A38,
+       0x10A3B,
+       0x10A3F,
+       0x10A40,
+       0x10A60,
+       0x10A7D,
+       0x10A80,
+       0x10A9D,
+       0x10AC0,
+       0x10AC8,
+       0x10AC9,
+       0x10AE7,
+       0x10B00,
+       0x10B36,
+       0x10B40,
+       0x10B56,
+       0x10B60,
+       0x10B73,
+       0x10B80,
+       0x10B92,
+       0x10C00,
+       0x10C49,
+       0x11000,
+       0x11047,
+       0x11066,
+       0x11070,
+       0x1107F,
+       0x110BB,
+       0x110D0,
+       0x110E9,
+       0x110F0,
+       0x110FA,
+       0x11100,
+       0x11135,
+       0x11136,
+       0x11140,
+       0x11150,
+       0x11174,
+       0x11176,
+       0x11177,
+       0x11180,
+       0x111C5,
+       0x111D0,
+       0x111DB,
+       0x11200,
+       0x11212,
+       0x11213,
+       0x11238,
+       0x112B0,
+       0x112EB,
+       0x112F0,
+       0x112FA,
+       0x11301,
+       0x11304,
+       0x11305,
+       0x1130D,
+       0x1130F,
+       0x11311,
+       0x11313,
+       0x11329,
+       0x1132A,
+       0x11331,
+       0x11332,
+       0x11334,
+       0x11335,
+       0x1133A,
+       0x1133C,
+       0x11345,
+       0x11347,
+       0x11349,
+       0x1134B,
+       0x1134E,
+       0x11357,
+       0x11358,
+       0x1135D,
+       0x11364,
+       0x11366,
+       0x1136D,
+       0x11370,
+       0x11375,
+       0x11480,
+       0x114C6,
+       0x114C7,
+       0x114C8,
+       0x114D0,
+       0x114DA,
+       0x11580,
+       0x115B6,
+       0x115B8,
+       0x115C1,
+       0x11600,
+       0x11641,
+       0x11644,
+       0x11645,
+       0x11650,
+       0x1165A,
+       0x11680,
+       0x116B8,
+       0x116C0,
+       0x116CA,
+       0x118A0,
+       0x118EA,
+       0x118FF,
+       0x11900,
+       0x11AC0,
+       0x11AF9,
+       0x12000,
+       0x12399,
+       0x12400,
+       0x1246F,
+       0x13000,
+       0x1342F,
+       0x16800,
+       0x16A39,
+       0x16A40,
+       0x16A5F,
+       0x16A60,
+       0x16A6A,
+       0x16AD0,
+       0x16AEE,
+       0x16AF0,
+       0x16AF5,
+       0x16B00,
+       0x16B37,
+       0x16B40,
+       0x16B44,
+       0x16B50,
+       0x16B5A,
+       0x16B63,
+       0x16B78,
+       0x16B7D,
+       0x16B90,
+       0x16F00,
+       0x16F45,
+       0x16F50,
+       0x16F7F,
+       0x16F8F,
+       0x16FA0,
+       0x1B000,
+       0x1B002,
+       0x1BC00,
+       0x1BC6B,
+       0x1BC70,
+       0x1BC7D,
+       0x1BC80,
+       0x1BC89,
+       0x1BC90,
+       0x1BC9A,
+       0x1BC9D,
+       0x1BC9F,
+       0x1D165,
+       0x1D16A,
+       0x1D16D,
+       0x1D173,
+       0x1D17B,
+       0x1D183,
+       0x1D185,
+       0x1D18C,
+       0x1D1AA,
+       0x1D1AE,
+       0x1D242,
+       0x1D245,
+       0x1D400,
+       0x1D455,
+       0x1D456,
+       0x1D49D,
+       0x1D49E,
+       0x1D4A0,
+       0x1D4A2,
+       0x1D4A3,
+       0x1D4A5,
+       0x1D4A7,
+       0x1D4A9,
+       0x1D4AD,
+       0x1D4AE,
+       0x1D4BA,
+       0x1D4BB,
+       0x1D4BC,
+       0x1D4BD,
+       0x1D4C4,
+       0x1D4C5,
+       0x1D506,
+       0x1D507,
+       0x1D50B,
+       0x1D50D,
+       0x1D515,
+       0x1D516,
+       0x1D51D,
+       0x1D51E,
+       0x1D53A,
+       0x1D53B,
+       0x1D53F,
+       0x1D540,
+       0x1D545,
+       0x1D546,
+       0x1D547,
+       0x1D54A,
+       0x1D551,
+       0x1D552,
+       0x1D6A6,
+       0x1D6A8,
+       0x1D6C1,
+       0x1D6C2,
+       0x1D6DB,
+       0x1D6DC,
+       0x1D6FB,
+       0x1D6FC,
+       0x1D715,
+       0x1D716,
+       0x1D735,
+       0x1D736,
+       0x1D74F,
+       0x1D750,
+       0x1D76F,
+       0x1D770,
+       0x1D789,
+       0x1D78A,
+       0x1D7A9,
+       0x1D7AA,
+       0x1D7C3,
+       0x1D7C4,
+       0x1D7CC,
+       0x1D7CE,
+       0x1D800,
+       0x1E800,
+       0x1E8C5,
+       0x1E8D0,
+       0x1E8D7,
+       0x1EE00,
+       0x1EE04,
+       0x1EE05,
+       0x1EE20,
+       0x1EE21,
+       0x1EE23,
+       0x1EE24,
+       0x1EE25,
+       0x1EE27,
+       0x1EE28,
+       0x1EE29,
+       0x1EE33,
+       0x1EE34,
+       0x1EE38,
+       0x1EE39,
+       0x1EE3A,
+       0x1EE3B,
+       0x1EE3C,
+       0x1EE42,
+       0x1EE43,
+       0x1EE47,
+       0x1EE48,
+       0x1EE49,
+       0x1EE4A,
+       0x1EE4B,
+       0x1EE4C,
+       0x1EE4D,
+       0x1EE50,
+       0x1EE51,
+       0x1EE53,
+       0x1EE54,
+       0x1EE55,
+       0x1EE57,
+       0x1EE58,
+       0x1EE59,
+       0x1EE5A,
+       0x1EE5B,
+       0x1EE5C,
+       0x1EE5D,
+       0x1EE5E,
+       0x1EE5F,
+       0x1EE60,
+       0x1EE61,
+       0x1EE63,
+       0x1EE64,
+       0x1EE65,
+       0x1EE67,
+       0x1EE6B,
+       0x1EE6C,
+       0x1EE73,
+       0x1EE74,
+       0x1EE78,
+       0x1EE79,
+       0x1EE7D,
+       0x1EE7E,
+       0x1EE7F,
+       0x1EE80,
+       0x1EE8A,
+       0x1EE8B,
+       0x1EE9C,
+       0x1EEA1,
+       0x1EEA4,
+       0x1EEA5,
+       0x1EEAA,
+       0x1EEAB,
+       0x1EEBC,
+       0x1F130,
+       0x1F14A,
+       0x1F150,
+       0x1F16A,
+       0x1F170,
+       0x1F18A,
+       0x20000,
+       0x2A6D7,
+       0x2A700,
+       0x2B735,
+       0x2B740,
+       0x2B81E,
+       0x2F800,
+       0x2FA1E,
+       0xE0100,
+       0xE01F0
 };
 
 static const UV XPosixXDigit_invlist[] = { /* for EBCDIC POSIX-BC */
@@ -47201,2907 +97259,27 @@ static const UV XPosixXDigit_invlist[] = { /* for EBCDIC POSIX-BC */
        148565664, /* Version and data structure type */
        1,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
-       0,
-       129,
-       135,
-       193,
-       199,
-       240,
-       250,
-       65296,
-       65306,
-       65313,
-       65319,
-       65345,
-       65351
-};
-
-static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC POSIX-BC */
-       265,    /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       154,
-       156,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       175,
-       192,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       225,
-       226,
-       234,
-       235,
-       240,
-       252,
-       253,
-       254,
-       255,
-       256,
-       305,
-       306,
-       312,
-       313,
-       397,
-       398,
-       411,
-       412,
-       426,
-       428,
-       442,
-       444,
-       446,
-       447,
-       448,
-       452,
-       545,
-       546,
-       564,
-       570,
-       597,
-       598,
-       600,
-       601,
-       602,
-       603,
-       605,
-       608,
-       610,
-       611,
-       612,
-       613,
-       615,
-       616,
-       618,
-       619,
-       621,
-       623,
-       624,
-       625,
-       627,
-       629,
-       630,
-       637,
-       638,
-       640,
-       641,
-       643,
-       644,
-       647,
-       653,
-       658,
-       659,
-       670,
-       671,
-       700,
-       701,
-       702,
-       703,
-       768,
-       770,
-       775,
-       777,
-       778,
-       779,
-       780,
-       781,
-       787,
-       788,
-       817,
-       818,
-       834,
-       835,
-       837,
-       838,
-       880,
-       884,
-       886,
-       888,
-       891,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       978,
-       981,
-       1014,
-       1015,
-       1020,
-       1021,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1377,
-       1416,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       7545,
-       7546,
-       7549,
-       7550,
-       7680,
-       7836,
-       7838,
-       7839,
-       7840,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8486,
-       8487,
-       8490,
-       8492,
-       8498,
-       8499,
-       8526,
-       8527,
-       8544,
-       8576,
-       8579,
-       8581,
-       9398,
-       9450,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11377,
-       11378,
-       11380,
-       11381,
-       11383,
-       11390,
-       11492,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       42560,
-       42606,
-       42624,
-       42652,
-       42786,
-       42800,
-       42802,
-       42864,
-       42873,
-       42888,
-       42891,
-       42894,
-       42896,
-       42900,
-       42902,
-       42926,
-       42928,
-       42930,
-       64256,
-       64263,
-       64275,
-       64280,
-       65313,
-       65339,
-       65345,
-       65371,
-       66560,
-       66640,
-       71840,
-       71904
-};
-
-#endif /* #ifndef PERL_IN_XSUB_RE */
-
-static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC POSIX-BC */
-       45,     /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0,
-       700,
-       701,
-       776,
-       777,
-       787,
-       788,
-       834,
-       835,
-       940,
-       941,
-       942,
-       943,
-       945,
-       946,
-       951,
-       952,
-       953,
-       954,
-       961,
-       962,
-       965,
-       966,
-       969,
-       970,
-       974,
-       975,
-       1381,
-       1382,
-       1396,
-       1397,
-       1406,
-       1407,
-       7936,
-       7944,
-       7968,
-       7976,
-       8032,
-       8040,
-       8048,
-       8049,
-       8052,
-       8053,
-       8060,
-       8061
-};
-
-#ifndef PERL_IN_XSUB_RE
-
-static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC POSIX-BC */
-       59,     /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0,
-       89,
-       90,
-       304,
-       305,
-       329,
-       330,
-       496,
-       497,
-       912,
-       913,
-       944,
-       945,
-       1415,
-       1416,
-       7830,
-       7835,
-       7838,
-       7839,
-       8016,
-       8017,
-       8018,
-       8019,
-       8020,
-       8021,
-       8022,
-       8023,
-       8064,
-       8112,
-       8114,
-       8117,
-       8118,
-       8120,
-       8124,
-       8125,
-       8130,
-       8133,
-       8134,
-       8136,
-       8140,
-       8141,
-       8146,
-       8148,
-       8150,
-       8152,
-       8162,
-       8165,
-       8166,
-       8168,
-       8178,
-       8181,
-       8182,
-       8184,
-       8188,
-       8189,
-       64256,
-       64263,
-       64275,
-       64280
-};
-
-static const UV UpperLatin1_invlist[] = { /* for EBCDIC POSIX-BC */
-       57,     /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0,
-       4,
-       5,
-       6,
-       7,
-       8,
-       11,
-       20,
-       21,
-       23,
-       24,
-       26,
-       28,
-       32,
-       38,
-       40,
-       45,
-       48,
-       50,
-       51,
-       55,
-       56,
-       60,
-       62,
-       63,
-       65,
-       74,
-       81,
-       90,
-       95,
-       96,
-       98,
-       106,
-       112,
-       122,
-       128,
-       129,
-       138,
-       145,
-       154,
-       162,
-       170,
-       187,
-       190,
-       193,
-       202,
-       209,
-       218,
-       226,
-       234,
-       240,
-       250,
-       251,
-       252,
-       253,
-       254,
-       255
-};
-
-static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC POSIX-BC */
-       1119,   /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       109,
-       110,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       175,
-       192,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       225,
-       226,
-       234,
-       235,
-       240,
-       252,
-       253,
-       254,
-       255,
-       256,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       880,
-       885,
-       886,
-       888,
-       891,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1162,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1488,
-       1515,
-       1520,
-       1523,
-       1568,
-       1611,
-       1646,
-       1648,
-       1649,
-       1748,
-       1749,
-       1750,
-       1765,
-       1767,
-       1774,
-       1776,
-       1786,
-       1789,
-       1791,
-       1792,
-       1808,
-       1809,
-       1810,
-       1840,
-       1869,
-       1958,
-       1969,
-       1970,
-       1994,
-       2027,
-       2036,
-       2038,
-       2042,
-       2043,
-       2048,
-       2070,
-       2074,
-       2075,
-       2084,
-       2085,
-       2088,
-       2089,
-       2112,
-       2137,
-       2208,
-       2227,
-       2308,
-       2362,
-       2365,
-       2366,
-       2384,
-       2385,
-       2392,
-       2402,
-       2417,
-       2433,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2493,
-       2494,
-       2510,
-       2511,
-       2524,
-       2526,
-       2527,
-       2530,
-       2544,
-       2546,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2649,
-       2653,
-       2654,
-       2655,
-       2674,
-       2677,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2749,
-       2750,
-       2768,
-       2769,
-       2784,
-       2786,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2877,
-       2878,
-       2908,
-       2910,
-       2911,
-       2914,
-       2929,
-       2930,
-       2947,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3024,
-       3025,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3134,
-       3160,
-       3162,
-       3168,
-       3170,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3261,
-       3262,
-       3294,
-       3295,
-       3296,
-       3298,
-       3313,
-       3315,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3390,
-       3406,
-       3407,
-       3424,
-       3426,
-       3450,
-       3456,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3585,
-       3633,
-       3634,
-       3635,
-       3648,
-       3655,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3761,
-       3762,
-       3763,
-       3773,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3804,
-       3808,
-       3840,
-       3841,
-       3904,
-       3912,
-       3913,
-       3949,
-       3976,
-       3981,
-       4096,
-       4139,
-       4159,
-       4160,
-       4176,
-       4182,
-       4186,
-       4190,
-       4193,
-       4194,
-       4197,
-       4199,
-       4206,
-       4209,
-       4213,
-       4226,
-       4238,
-       4239,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5906,
-       5920,
-       5938,
-       5952,
-       5970,
-       5984,
-       5997,
-       5998,
-       6001,
-       6016,
-       6068,
-       6103,
-       6104,
-       6108,
-       6109,
-       6176,
-       6264,
-       6272,
-       6313,
-       6314,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6480,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6593,
-       6600,
-       6656,
-       6679,
-       6688,
-       6741,
-       6823,
-       6824,
-       6917,
-       6964,
-       6981,
-       6988,
-       7043,
-       7073,
-       7086,
-       7088,
-       7098,
-       7142,
-       7168,
-       7204,
-       7245,
-       7248,
-       7258,
-       7294,
-       7401,
-       7405,
-       7406,
-       7410,
-       7413,
-       7415,
-       7424,
-       7616,
-       7680,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11503,
-       11506,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11648,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       12293,
-       12296,
-       12321,
-       12330,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42528,
-       42538,
-       42540,
-       42560,
-       42607,
-       42623,
-       42654,
-       42656,
-       42736,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43010,
-       43011,
-       43014,
-       43015,
-       43019,
-       43020,
-       43043,
-       43072,
-       43124,
-       43138,
-       43188,
-       43250,
-       43256,
-       43259,
-       43260,
-       43274,
-       43302,
-       43312,
-       43335,
-       43360,
-       43389,
-       43396,
-       43443,
-       43471,
-       43472,
-       43488,
-       43493,
-       43494,
-       43504,
-       43514,
-       43519,
-       43520,
-       43561,
-       43584,
-       43587,
-       43588,
-       43596,
-       43616,
-       43639,
-       43642,
-       43643,
-       43646,
-       43696,
-       43697,
-       43698,
-       43701,
-       43703,
-       43705,
-       43710,
-       43712,
-       43713,
-       43714,
-       43715,
-       43739,
-       43742,
-       43744,
-       43755,
-       43762,
-       43765,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44003,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64286,
-       64287,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64606,
-       64612,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65018,
-       65137,
-       65138,
-       65139,
-       65140,
-       65143,
-       65144,
-       65145,
-       65146,
-       65147,
-       65148,
-       65149,
-       65150,
-       65151,
-       65277,
-       65313,
-       65339,
-       65345,
-       65371,
-       65382,
-       65438,
-       65440,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66176,
-       66205,
-       66208,
-       66257,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66422,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68097,
-       68112,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68325,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69635,
-       69688,
-       69763,
-       69808,
-       69840,
-       69865,
-       69891,
-       69927,
-       69968,
-       70003,
-       70006,
-       70007,
-       70019,
-       70067,
-       70081,
-       70085,
-       70106,
-       70107,
-       70144,
-       70162,
-       70163,
-       70188,
-       70320,
-       70367,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70461,
-       70462,
-       70493,
-       70498,
-       70784,
-       70832,
-       70852,
-       70854,
-       70855,
-       70856,
-       71040,
-       71087,
-       71168,
-       71216,
-       71236,
-       71237,
-       71296,
-       71339,
-       71840,
-       71904,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92880,
-       92910,
-       92928,
-       92976,
-       92992,
-       92996,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94033,
-       94099,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       124928,
-       125125,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102
-};
-
-static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC POSIX-BC */
-       1289,   /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0,
-       66,
-       74,
-       81,
-       90,
-       98,
-       106,
-       109,
-       110,
-       112,
-       121,
-       128,
-       138,
-       140,
-       143,
-       145,
-       157,
-       158,
-       159,
-       160,
-       161,
-       162,
-       170,
-       172,
-       175,
-       192,
-       202,
-       203,
-       208,
-       209,
-       218,
-       219,
-       225,
-       226,
-       234,
-       235,
-       250,
-       252,
-       253,
-       254,
-       255,
-       256,
-       706,
-       710,
-       722,
-       736,
-       741,
-       748,
-       749,
-       750,
-       751,
-       768,
-       885,
-       886,
-       888,
-       891,
-       894,
-       895,
-       896,
-       902,
-       903,
-       904,
-       907,
-       908,
-       909,
-       910,
-       930,
-       931,
-       1014,
-       1015,
-       1154,
-       1155,
-       1160,
-       1162,
-       1328,
-       1329,
-       1367,
-       1369,
-       1370,
-       1377,
-       1416,
-       1425,
-       1470,
-       1471,
-       1472,
-       1473,
-       1475,
-       1476,
-       1478,
-       1479,
-       1480,
-       1488,
-       1515,
-       1520,
-       1523,
-       1552,
-       1563,
-       1568,
-       1642,
-       1646,
-       1748,
-       1749,
-       1757,
-       1759,
-       1769,
-       1770,
-       1789,
-       1791,
-       1792,
-       1808,
-       1867,
-       1869,
-       1970,
-       1984,
-       2038,
-       2042,
-       2043,
-       2048,
-       2094,
-       2112,
-       2140,
-       2208,
-       2227,
-       2276,
-       2404,
-       2406,
-       2416,
-       2417,
-       2436,
-       2437,
-       2445,
-       2447,
-       2449,
-       2451,
-       2473,
-       2474,
-       2481,
-       2482,
-       2483,
-       2486,
-       2490,
-       2492,
-       2501,
-       2503,
-       2505,
-       2507,
-       2511,
-       2519,
-       2520,
-       2524,
-       2526,
-       2527,
-       2532,
-       2534,
-       2546,
-       2561,
-       2564,
-       2565,
-       2571,
-       2575,
-       2577,
-       2579,
-       2601,
-       2602,
-       2609,
-       2610,
-       2612,
-       2613,
-       2615,
-       2616,
-       2618,
-       2620,
-       2621,
-       2622,
-       2627,
-       2631,
-       2633,
-       2635,
-       2638,
-       2641,
-       2642,
-       2649,
-       2653,
-       2654,
-       2655,
-       2662,
-       2678,
-       2689,
-       2692,
-       2693,
-       2702,
-       2703,
-       2706,
-       2707,
-       2729,
-       2730,
-       2737,
-       2738,
-       2740,
-       2741,
-       2746,
-       2748,
-       2758,
-       2759,
-       2762,
-       2763,
-       2766,
-       2768,
-       2769,
-       2784,
-       2788,
-       2790,
-       2800,
-       2817,
-       2820,
-       2821,
-       2829,
-       2831,
-       2833,
-       2835,
-       2857,
-       2858,
-       2865,
-       2866,
-       2868,
-       2869,
-       2874,
-       2876,
-       2885,
-       2887,
-       2889,
-       2891,
-       2894,
-       2902,
-       2904,
-       2908,
-       2910,
-       2911,
-       2916,
-       2918,
-       2928,
-       2929,
-       2930,
-       2946,
-       2948,
-       2949,
-       2955,
-       2958,
-       2961,
-       2962,
-       2966,
-       2969,
-       2971,
-       2972,
-       2973,
-       2974,
-       2976,
-       2979,
-       2981,
-       2984,
-       2987,
-       2990,
-       3002,
-       3006,
-       3011,
-       3014,
-       3017,
-       3018,
-       3022,
-       3024,
-       3025,
-       3031,
-       3032,
-       3046,
-       3056,
-       3072,
-       3076,
-       3077,
-       3085,
-       3086,
-       3089,
-       3090,
-       3113,
-       3114,
-       3130,
-       3133,
-       3141,
-       3142,
-       3145,
-       3146,
-       3150,
-       3157,
-       3159,
-       3160,
-       3162,
-       3168,
-       3172,
-       3174,
-       3184,
-       3201,
-       3204,
-       3205,
-       3213,
-       3214,
-       3217,
-       3218,
-       3241,
-       3242,
-       3252,
-       3253,
-       3258,
-       3260,
-       3269,
-       3270,
-       3273,
-       3274,
-       3278,
-       3285,
-       3287,
-       3294,
-       3295,
-       3296,
-       3300,
-       3302,
-       3312,
-       3313,
-       3315,
-       3329,
-       3332,
-       3333,
-       3341,
-       3342,
-       3345,
-       3346,
-       3387,
-       3389,
-       3397,
-       3398,
-       3401,
-       3402,
-       3407,
-       3415,
-       3416,
-       3424,
-       3428,
-       3430,
-       3440,
-       3450,
-       3456,
-       3458,
-       3460,
-       3461,
-       3479,
-       3482,
-       3506,
-       3507,
-       3516,
-       3517,
-       3518,
-       3520,
-       3527,
-       3530,
-       3531,
-       3535,
-       3541,
-       3542,
-       3543,
-       3544,
-       3552,
-       3558,
-       3568,
-       3570,
-       3572,
-       3585,
-       3643,
-       3648,
-       3663,
-       3664,
-       3674,
-       3713,
-       3715,
-       3716,
-       3717,
-       3719,
-       3721,
-       3722,
-       3723,
-       3725,
-       3726,
-       3732,
-       3736,
-       3737,
-       3744,
-       3745,
-       3748,
-       3749,
-       3750,
-       3751,
-       3752,
-       3754,
-       3756,
-       3757,
-       3770,
-       3771,
-       3774,
-       3776,
-       3781,
-       3782,
-       3783,
-       3784,
-       3790,
-       3792,
-       3802,
-       3804,
-       3808,
-       3840,
-       3841,
-       3864,
-       3866,
-       3872,
-       3882,
-       3893,
-       3894,
-       3895,
-       3896,
-       3897,
-       3898,
-       3902,
-       3912,
-       3913,
-       3949,
-       3953,
-       3973,
-       3974,
-       3992,
-       3993,
-       4029,
-       4038,
-       4039,
-       4096,
-       4170,
-       4176,
-       4254,
-       4256,
-       4294,
-       4295,
-       4296,
-       4301,
-       4302,
-       4304,
-       4347,
-       4348,
-       4681,
-       4682,
-       4686,
-       4688,
-       4695,
-       4696,
-       4697,
-       4698,
-       4702,
-       4704,
-       4745,
-       4746,
-       4750,
-       4752,
-       4785,
-       4786,
-       4790,
-       4792,
-       4799,
-       4800,
-       4801,
-       4802,
-       4806,
-       4808,
-       4823,
-       4824,
-       4881,
-       4882,
-       4886,
-       4888,
-       4955,
-       4957,
-       4960,
-       4992,
-       5008,
-       5024,
-       5109,
-       5121,
-       5741,
-       5743,
-       5760,
-       5761,
-       5787,
-       5792,
-       5867,
-       5870,
-       5881,
-       5888,
-       5901,
-       5902,
-       5909,
-       5920,
-       5941,
-       5952,
-       5972,
-       5984,
-       5997,
-       5998,
-       6001,
-       6002,
-       6004,
-       6016,
-       6100,
-       6103,
-       6104,
-       6108,
-       6110,
-       6112,
-       6122,
-       6155,
-       6158,
-       6160,
-       6170,
-       6176,
-       6264,
-       6272,
-       6315,
-       6320,
-       6390,
-       6400,
-       6431,
-       6432,
-       6444,
-       6448,
-       6460,
-       6470,
-       6510,
-       6512,
-       6517,
-       6528,
-       6572,
-       6576,
-       6602,
-       6608,
-       6618,
-       6656,
-       6684,
-       6688,
-       6751,
-       6752,
-       6781,
-       6783,
-       6794,
-       6800,
-       6810,
-       6823,
-       6824,
-       6832,
-       6846,
-       6912,
-       6988,
-       6992,
-       7002,
-       7019,
-       7028,
-       7040,
-       7156,
-       7168,
-       7224,
-       7232,
-       7242,
-       7245,
-       7294,
-       7376,
-       7379,
-       7380,
-       7415,
-       7416,
-       7418,
-       7424,
-       7670,
-       7676,
-       7958,
-       7960,
-       7966,
-       7968,
-       8006,
-       8008,
-       8014,
-       8016,
-       8024,
-       8025,
-       8026,
-       8027,
-       8028,
-       8029,
-       8030,
-       8031,
-       8062,
-       8064,
-       8117,
-       8118,
-       8125,
-       8126,
-       8127,
-       8130,
-       8133,
-       8134,
-       8141,
-       8144,
-       8148,
-       8150,
-       8156,
-       8160,
-       8173,
-       8178,
-       8181,
-       8182,
-       8189,
-       8255,
-       8257,
-       8276,
-       8277,
-       8305,
-       8306,
-       8319,
-       8320,
-       8336,
-       8349,
-       8400,
-       8413,
-       8417,
-       8418,
-       8421,
-       8433,
-       8450,
-       8451,
-       8455,
-       8456,
-       8458,
-       8468,
-       8469,
-       8470,
-       8473,
-       8478,
-       8484,
-       8485,
-       8486,
-       8487,
-       8488,
-       8489,
-       8490,
-       8494,
-       8495,
-       8506,
-       8508,
-       8512,
-       8517,
-       8522,
-       8526,
-       8527,
-       8544,
-       8585,
-       11264,
-       11311,
-       11312,
-       11359,
-       11360,
-       11493,
-       11499,
-       11508,
-       11520,
-       11558,
-       11559,
-       11560,
-       11565,
-       11566,
-       11568,
-       11624,
-       11631,
-       11632,
-       11647,
-       11671,
-       11680,
-       11687,
-       11688,
-       11695,
-       11696,
-       11703,
-       11704,
-       11711,
-       11712,
-       11719,
-       11720,
-       11727,
-       11728,
-       11735,
-       11736,
-       11743,
-       11744,
-       11776,
-       12293,
-       12296,
-       12321,
-       12336,
-       12337,
-       12342,
-       12344,
-       12349,
-       12353,
-       12439,
-       12441,
-       12443,
-       12445,
-       12448,
-       12449,
-       12539,
-       12540,
-       12544,
-       12549,
-       12590,
-       12593,
-       12687,
-       12704,
-       12731,
-       12784,
-       12800,
-       13312,
-       19894,
-       19968,
-       40909,
-       40960,
-       42125,
-       42192,
-       42238,
-       42240,
-       42509,
-       42512,
-       42540,
-       42560,
-       42608,
-       42612,
-       42622,
-       42623,
-       42654,
-       42655,
-       42738,
-       42775,
-       42784,
-       42786,
-       42889,
-       42891,
-       42895,
-       42896,
-       42926,
-       42928,
-       42930,
-       42999,
-       43048,
-       43072,
-       43124,
-       43136,
-       43205,
-       43216,
-       43226,
-       43232,
-       43256,
-       43259,
-       43260,
-       43264,
-       43310,
-       43312,
-       43348,
-       43360,
-       43389,
-       43392,
-       43457,
-       43471,
-       43482,
-       43488,
-       43519,
-       43520,
-       43575,
-       43584,
-       43598,
-       43600,
-       43610,
-       43616,
-       43639,
-       43642,
-       43715,
-       43739,
-       43742,
-       43744,
-       43760,
-       43762,
-       43767,
-       43777,
-       43783,
-       43785,
-       43791,
-       43793,
-       43799,
-       43808,
-       43815,
-       43816,
-       43823,
-       43824,
-       43867,
-       43868,
-       43872,
-       43876,
-       43878,
-       43968,
-       44011,
-       44012,
-       44014,
-       44016,
-       44026,
-       44032,
-       55204,
-       55216,
-       55239,
-       55243,
-       55292,
-       63744,
-       64110,
-       64112,
-       64218,
-       64256,
-       64263,
-       64275,
-       64280,
-       64285,
-       64297,
-       64298,
-       64311,
-       64312,
-       64317,
-       64318,
-       64319,
-       64320,
-       64322,
-       64323,
-       64325,
-       64326,
-       64434,
-       64467,
-       64606,
-       64612,
-       64830,
-       64848,
-       64912,
-       64914,
-       64968,
-       65008,
-       65018,
-       65024,
-       65040,
-       65056,
-       65070,
-       65075,
-       65077,
-       65101,
-       65104,
-       65137,
-       65138,
-       65139,
-       65140,
-       65143,
-       65144,
-       65145,
-       65146,
-       65147,
-       65148,
-       65149,
-       65150,
-       65151,
-       65277,
-       65296,
-       65306,
-       65313,
-       65339,
-       65343,
-       65344,
-       65345,
-       65371,
-       65382,
-       65471,
-       65474,
-       65480,
-       65482,
-       65488,
-       65490,
-       65496,
-       65498,
-       65501,
-       65536,
-       65548,
-       65549,
-       65575,
-       65576,
-       65595,
-       65596,
-       65598,
-       65599,
-       65614,
-       65616,
-       65630,
-       65664,
-       65787,
-       65856,
-       65909,
-       66045,
-       66046,
-       66176,
-       66205,
-       66208,
-       66257,
-       66272,
-       66273,
-       66304,
-       66336,
-       66352,
-       66379,
-       66384,
-       66427,
-       66432,
-       66462,
-       66464,
-       66500,
-       66504,
-       66512,
-       66513,
-       66518,
-       66560,
-       66718,
-       66720,
-       66730,
-       66816,
-       66856,
-       66864,
-       66916,
-       67072,
-       67383,
-       67392,
-       67414,
-       67424,
-       67432,
-       67584,
-       67590,
-       67592,
-       67593,
-       67594,
-       67638,
-       67639,
-       67641,
-       67644,
-       67645,
-       67647,
-       67670,
-       67680,
-       67703,
-       67712,
-       67743,
-       67840,
-       67862,
-       67872,
-       67898,
-       67968,
-       68024,
-       68030,
-       68032,
-       68096,
-       68100,
-       68101,
-       68103,
-       68108,
-       68116,
-       68117,
-       68120,
-       68121,
-       68148,
-       68152,
-       68155,
-       68159,
-       68160,
-       68192,
-       68221,
-       68224,
-       68253,
-       68288,
-       68296,
-       68297,
-       68327,
-       68352,
-       68406,
-       68416,
-       68438,
-       68448,
-       68467,
-       68480,
-       68498,
-       68608,
-       68681,
-       69632,
-       69703,
-       69734,
-       69744,
-       69759,
-       69819,
-       69840,
-       69865,
-       69872,
-       69882,
-       69888,
-       69941,
-       69942,
-       69952,
-       69968,
-       70004,
-       70006,
-       70007,
-       70016,
-       70085,
-       70096,
-       70107,
-       70144,
-       70162,
-       70163,
-       70200,
-       70320,
-       70379,
-       70384,
-       70394,
-       70401,
-       70404,
-       70405,
-       70413,
-       70415,
-       70417,
-       70419,
-       70441,
-       70442,
-       70449,
-       70450,
-       70452,
-       70453,
-       70458,
-       70460,
-       70469,
-       70471,
-       70473,
-       70475,
-       70478,
-       70487,
-       70488,
-       70493,
-       70500,
-       70502,
-       70509,
-       70512,
-       70517,
-       70784,
-       70854,
-       70855,
-       70856,
-       70864,
-       70874,
-       71040,
-       71094,
-       71096,
-       71105,
-       71168,
-       71233,
-       71236,
-       71237,
-       71248,
-       71258,
-       71296,
-       71352,
-       71360,
-       71370,
-       71840,
-       71914,
-       71935,
-       71936,
-       72384,
-       72441,
-       73728,
-       74649,
-       74752,
-       74863,
-       77824,
-       78895,
-       92160,
-       92729,
-       92736,
-       92767,
-       92768,
-       92778,
-       92880,
-       92910,
-       92912,
-       92917,
-       92928,
-       92983,
-       92992,
-       92996,
-       93008,
-       93018,
-       93027,
-       93048,
-       93053,
-       93072,
-       93952,
-       94021,
-       94032,
-       94079,
-       94095,
-       94112,
-       110592,
-       110594,
-       113664,
-       113771,
-       113776,
-       113789,
-       113792,
-       113801,
-       113808,
-       113818,
-       113821,
-       113823,
-       119141,
-       119146,
-       119149,
-       119155,
-       119163,
-       119171,
-       119173,
-       119180,
-       119210,
-       119214,
-       119362,
-       119365,
-       119808,
-       119893,
-       119894,
-       119965,
-       119966,
-       119968,
-       119970,
-       119971,
-       119973,
-       119975,
-       119977,
-       119981,
-       119982,
-       119994,
-       119995,
-       119996,
-       119997,
-       120004,
-       120005,
-       120070,
-       120071,
-       120075,
-       120077,
-       120085,
-       120086,
-       120093,
-       120094,
-       120122,
-       120123,
-       120127,
-       120128,
-       120133,
-       120134,
-       120135,
-       120138,
-       120145,
-       120146,
-       120486,
-       120488,
-       120513,
-       120514,
-       120539,
-       120540,
-       120571,
-       120572,
-       120597,
-       120598,
-       120629,
-       120630,
-       120655,
-       120656,
-       120687,
-       120688,
-       120713,
-       120714,
-       120745,
-       120746,
-       120771,
-       120772,
-       120780,
-       120782,
-       120832,
-       124928,
-       125125,
-       125136,
-       125143,
-       126464,
-       126468,
-       126469,
-       126496,
-       126497,
-       126499,
-       126500,
-       126501,
-       126503,
-       126504,
-       126505,
-       126515,
-       126516,
-       126520,
-       126521,
-       126522,
-       126523,
-       126524,
-       126530,
-       126531,
-       126535,
-       126536,
-       126537,
-       126538,
-       126539,
-       126540,
-       126541,
-       126544,
-       126545,
-       126547,
-       126548,
-       126549,
-       126551,
-       126552,
-       126553,
-       126554,
-       126555,
-       126556,
-       126557,
-       126558,
-       126559,
-       126560,
-       126561,
-       126563,
-       126564,
-       126565,
-       126567,
-       126571,
-       126572,
-       126579,
-       126580,
-       126584,
-       126585,
-       126589,
-       126590,
-       126591,
-       126592,
-       126602,
-       126603,
-       126620,
-       126625,
-       126628,
-       126629,
-       126634,
-       126635,
-       126652,
-       131072,
-       173783,
-       173824,
-       177973,
-       177984,
-       178206,
-       194560,
-       195102,
-       917760,
-       918000
+       0x0,
+       0x81,
+       0x87,
+       0xC1,
+       0xC7,
+       0xF0,
+       0xFA,
+       0xFF10,
+       0xFF1A,
+       0xFF21,
+       0xFF27,
+       0xFF41,
+       0xFF47
 };
 
-#endif /* #ifndef PERL_IN_XSUB_RE */
+#endif /* defined(PERL_IN_PERL_C) */
 
 #endif /* EBCDIC POSIX-BC */
 
 /* Generated from:
- * b42e5a66f6ee1e7586e2d9b70c61cac003a4567fa242c3b5b74fb1edf57f2abc lib/Unicode/UCD.pm
+ * 083180df694deb1fc173361406c1a75619fb8376403db3a76dc585c1e3951eca lib/Unicode/UCD.pm
  * 827aa7ee45ca9fe09f3e0969a5a27a69ce58a6c7134548125266210018d27b49 lib/unicore/ArabicShaping.txt
  * 3748fbbe9d280a9da700bfd0c28beaaf6f32a67ec263a124fcb0a4095a30fae5 lib/unicore/BidiBrackets.txt
  * 3925329c2432fa7248b2e180cddcedb9a4f9eafbbb10ab9e105eaf833043b2fb lib/unicore/BidiMirroring.txt
@@ -50129,6 +97307,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC POSIX-BC */
  * 916289f471c4a337fb1e0715985a11e6bc8bb205736e84164849d601d265d9e0 lib/unicore/auxiliary/GCBTest.txt
  * 3d7ffae56e506d595f3e0e5d36978bc6721d53470e5ca9666ad7cdfc4a46cb3d lib/unicore/auxiliary/GraphemeBreakProperty.txt
  * 28356f6912113a9fe8244d9396e9786115dbc10b3ffb5e31b08969122e91d3f3 lib/unicore/auxiliary/SentenceBreakProperty.txt
+ * 3f56d3ccfc35c6dac44d143a4d6087af4e4ee9f1bdbae482c12f6149b60dec3b lib/unicore/auxiliary/WBTest.txt
  * 82f7304030e6866ef8e02cdfb0485c52c18a661282bfce9c259cc6300abd79ad lib/unicore/auxiliary/WordBreakProperty.txt
  * b88801b4a469207892a0401697c6b1c5fd64042ae0ef867f4ad0ec04942b415c lib/unicore/extracted/DBidiClass.txt
  * 074d33ea6c7349eab840d690369dffb3568e2f7b039552b7c10480274d321545 lib/unicore/extracted/DBinaryProperties.txt
@@ -50142,5 +97321,5 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC POSIX-BC */
  * a17a0330e57d774343a53c019f1bc69827c2676982a1bf48e0898a76710e8877 lib/unicore/extracted/DNumType.txt
  * c2cb810a67cc5fb4a8d236b6c1bc6dd4d89733d8603881997e8aae2c816a3db1 lib/unicore/extracted/DNumValues.txt
  * 746472de66b936ac885ca6d6e68058242b4e909e3260c6317f3ec719f78f76cc lib/unicore/version
- * 94e7dc7c1f9aa10a692d755661f597485c70b7eeb8eb14d72ba6ea3220ca9aca regen/mk_invlists.pl
+ * 0bac6f110c7e46527d2bca4d37945ef54008f0e6d50ce493018f5d360d48f11a regen/mk_invlists.pl
  * ex: set ro: */
index 2cf870a..03c6753 100755 (executable)
@@ -3995,12 +3995,26 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_llrint HAS_LLRINT          /**/
 
+/* HAS_LLRINTL:
+ *     This symbol, if defined, indicates that the llrintl routine is
+ *     available to return the closest long long value of the long double
+ *     argument according to the current rounding mode.
+ */
+#$d_llrintl HAS_LLRINTL                /**/
+
 /* HAS_LLROUND:
  *     This symbol, if defined, indicates that the llround routine is
  *     available to return the nearest long long value.
  */
 #$d_llround HAS_LLROUND                /**/
 
+/* HAS_LLROUNDL:
+ *     This symbol, if defined, indicates that the llroundl routine is
+ *     available to return the nearest long long value away from zero of
+ *     the long double argument value.
+ */
+#$d_llroundl HAS_LLROUNDL              /**/
+
 /* HAS_LOG1P:
  *     This symbol, if defined, indicates that the log1p routine is
  *     available to do the logarithm of 1 plus argument function.
@@ -4026,12 +4040,26 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_lrint HAS_LRINT            /**/
 
+/* HAS_LRINTL:
+ *     This symbol, if defined, indicates that the lrintl routine is
+ *     available to return the closest integral value of the long double
+ *     argument according to the current rounding mode.
+ */
+#$d_lrintl HAS_LRINTL          /**/
+
 /* HAS_LROUND:
  *     This symbol, if defined, indicates that the lround routine is
  *     available to return the nearest integral value.
  */
 #$d_lround HAS_LROUND          /**/
 
+/* HAS_LROUNDL:
+ *     This symbol, if defined, indicates that the lroundl routine is
+ *     available to return the nearest integral value away from zero of
+ *     the long double argument value.
+ */
+#$d_lroundl HAS_LROUNDL                /**/
+
 /* HAS_MADVISE:
  *     This symbol, if defined, indicates that the madvise system call is
  *     available to map a file into memory.
index f4dbab3..f926229 100644 (file)
@@ -3313,7 +3313,6 @@ $ THEN d_mymalloc="define"
 $ ELSE d_mymalloc="undef"
 $ ENDIF
 $!
-$ usedevel="undef"
 $ usedl="define"
 $ startperl="""$ perl 'f$env(\""procedure\"")' \""'"+"'p1'\"" \""'"+"'p2'\"" \""'"+"'p3'\"" \""'"+"'p4'\"" \""'"+"'p5'\"" \""'"+"'p6'\"" \""'"+"'p7'\"" \""'"+"'p8'\""!\n"
 $ startperl=startperl + "$ exit++ + ++$status!=0 and $exit=$status=undef; while($#ARGV != -1 and $ARGV[$#ARGV] eq '"+"'){pop @ARGV;}"""
@@ -3400,7 +3399,9 @@ $   d_log1p = "define"
 $   d_log2 = "define"
 $   d_logb = "define"
 $   d_lrint = "define"
+$   d_lrintl = "define"
 $   d_lround = "define"
+$   d_lroundl = "define"
 $   d_nearbyint = "define"
 $   d_nextafter = "define"
 $   d_nexttoward = "define"
@@ -3436,7 +3437,9 @@ $   d_log1p = "undef"
 $   d_log2 = "undef"
 $   d_logb = "undef"
 $   d_lrint = "undef"
+$   d_lrintl = "undef"
 $   d_lround = "undef"
+$   d_lroundl = "undef"
 $   d_nearbyint = "undef"
 $   d_nextafter = "undef"
 $   d_nexttoward = "undef"
@@ -6171,7 +6174,9 @@ $ WC "d_lgamma='" + d_lgamma + "'"
 $ WC "d_libm_lib_version='undef'"
 $ WC "d_link='" + d_link + "'"
 $ WC "d_llrint='undef'"
+$ WC "d_llrintl='undef'"
 $ WC "d_llround='undef'"
+$ WC "d_llroundl='undef'"
 $ WC "d_llseek='undef'"
 $ WC "d_localtime64='undef'"
 $ WC "d_locconv='" + d_locconv + "'"
@@ -6183,7 +6188,9 @@ $ WC "d_logb='" + d_logb + "'"
 $ WC "d_longdbl='" + d_longdbl + "'"
 $ WC "d_longlong='" + d_longlong + "'"
 $ WC "d_lrint='" + d_lrint + "'"
+$ WC "d_lrintl='" + d_lrintl + "'"
 $ WC "d_lround='" + d_lround + "'"
+$ WC "d_lroundl='" + d_lroundl + "'"
 $ WC "d_lseekproto='define'"
 $ WC "d_lstat='" + d_lstat + "'"
 $ WC "d_madvise='undef'"
@@ -7401,7 +7408,7 @@ $ WRITE CONFIG "$ c2ph       == """ + perl_setup_perl + " ''vms_prefix':[utils]c
 $ WRITE CONFIG "$ corelist   == """ + perl_setup_perl + " ''vms_prefix':[utils]corelist.com"""
 $ WRITE CONFIG "$ cpan       == """ + perl_setup_perl + " ''vms_prefix':[utils]cpan.com"""
 $ WRITE CONFIG "$ enc2xs     == """ + perl_setup_perl + " ''vms_prefix':[utils]enc2xs.com"""
-$ WRITE CONFIG "$ find2perl  == """ + perl_setup_perl + " ''vms_prefix':[utils]find2perl.com"""
+$ WRITE CONFIG "$ encguess   == """ + perl_setup_perl + " ''vms_prefix':[utils]encguess.com"""
 $ WRITE CONFIG "$ h2ph       == """ + perl_setup_perl + " ''vms_prefix':[utils]h2ph.com"""
 $ WRITE CONFIG "$ h2xs       == """ + perl_setup_perl + " ''vms_prefix':[utils]h2xs.com"""
 $ WRITE CONFIG "$ instmodsh  == """ + perl_setup_perl + " ''vms_prefix':[utils]instmodsh.com"""
@@ -7420,7 +7427,6 @@ $ WRITE CONFIG "$ podselect  == """ + perl_setup_perl + " ''vms_prefix':[utils]p
 $ WRITE CONFIG "$ prove      == """ + perl_setup_perl + " ''vms_prefix':[utils]prove.com"""
 $ WRITE CONFIG "$ psed       == """ + perl_setup_perl + " ''vms_prefix':[utils]psed.com"""
 $ WRITE CONFIG "$ pstruct    == """ + perl_setup_perl + " ''vms_prefix':[utils]pstruct.com"""
-$ WRITE CONFIG "$ s2p        == """ + perl_setup_perl + " ''vms_prefix':[utils]s2p.com"""
 $ WRITE CONFIG "$ ptar       == """ + perl_setup_perl + " ''vms_prefix':[utils]ptar.com"""
 $ WRITE CONFIG "$ ptardiff   == """ + perl_setup_perl + " ''vms_prefix':[utils]ptardiff.com"""
 $ WRITE CONFIG "$ ptargrep   == """ + perl_setup_perl + " ''vms_prefix':[utils]ptargrep.com"""
index 6f0c4c6..fd66405 100644 (file)
@@ -1,6 +1,6 @@
 package B::Debug;
 
-our $VERSION = '1.22';
+our $VERSION = '1.23';
 
 use strict;
 require 5.006;
index e86dd56..8348559 100644 (file)
@@ -3,7 +3,7 @@ use warnings;
 package CPAN::Meta::Requirements;
 # ABSTRACT: a set of version requirements for a CPAN dist
 
-our $VERSION = '2.131';
+our $VERSION = '2.132';
 
 #pod =head1 SYNOPSIS
 #pod
@@ -119,7 +119,7 @@ sub _version_object {
   }
 
   eval {
-    if (not defined $version or $version eq '0') {
+    if (not defined $version or (!ref($version) && $version eq '0')) {
       $vobj = $V0;
     }
     elsif ( ref($version) eq 'version' || _isa_version($version) ) {
@@ -229,7 +229,7 @@ BEGIN {
 sub add_minimum {
   my ($self, $name, $version) = @_;
 
-  if (not defined $version or $version eq '0') {
+  if (not defined $version or (!ref($version) && $version eq '0')) {
     return $self if $self->__entry_for($name);
     Carp::confess("can't add new requirements to finalized requirements")
       if $self->is_finalized;
@@ -787,7 +787,7 @@ CPAN::Meta::Requirements - a set of version requirements for a CPAN dist
 
 =head1 VERSION
 
-version 2.131
+version 2.132
 
 =head1 SYNOPSIS
 
index 882e324..ba029f4 100644 (file)
@@ -233,4 +233,22 @@ sub foo_1 {
   is ( $scalar, undef, "requirements_for_module() returns undef for not found (scalar)" );
 }
 
+{
+  my $req = CPAN::Meta::Requirements->new;
+
+  $req->add_minimum(Foo => "0.00");
+
+  my $req2 = CPAN::Meta::Requirements->new;
+  $req2->add_requirements($req);
+
+  is_deeply(
+    $req2->as_string_hash,
+    {
+      Foo => '0.00'
+    },
+    "0.00 precision preserved",
+  );
+
+}
+
 done_testing;
index 94a5236..55a28be 100644 (file)
@@ -55,6 +55,21 @@ ok(!$req->accepts_module('A::Tribe::Called' => '1.2'), 'lower version (>=, <=, !
 ok(!$req->accepts_module('A::Tribe::Called' => '2.1'), 'higher version (>=, <=, !)');
 ok(!$req->accepts_module('A::Tribe::Called' => '1.6'), 'excluded version (>=, <=, !)');
 
+# Test precision
+{
+  my $req = CPAN::Meta::Requirements->new;
+
+  $req->add_string_requirement(Foo => "0.00");
+
+  is_deeply(
+    $req->as_string_hash,
+    {
+      Foo => '0.00'
+    },
+    "0.00 precision preserved",
+  );
+}
+
 # Test fatal errors
 dies_ok { $req->add_string_requirement('Foo::Bar', "not really a version") }
   qr/Can't convert/,
index a8429cf..572f3ab 100644 (file)
@@ -8,7 +8,7 @@ use CPAN::InfoObj;
 use vars qw(
             $VERSION
 );
-$VERSION = "5.5001";
+$VERSION = "5.5002";
 
 package CPAN::Author;
 use strict;
index d50ed52..144efd6 100644 (file)
@@ -10,7 +10,7 @@ use File::Find;
 use vars qw(
             $VERSION
 );
-$VERSION = "5.5001";
+$VERSION = "5.5002";
 
 package CPAN::CacheMgr;
 use strict;
index 8aaf3d3..831f234 100644 (file)
@@ -14,7 +14,7 @@ use vars qw($connect_to_internet_ok $Ua $Thesite $ThesiteURL $Themethod);
 use vars qw(
             $VERSION
 );
-$VERSION = "5.5005";
+$VERSION = "5.5006";
 
 #-> sub CPAN::FTP::ftp_statistics
 # if they want to rewrite, they need to pass in a filehandle
index 8cb1c80..4fc792c 100644 (file)
@@ -6,7 +6,7 @@ use vars qw(@ISA);
 use CPAN::HTTP::Credentials;
 use HTTP::Tiny 0.005;
 
-$CPAN::HTTP::Client::VERSION = $CPAN::HTTP::Client::VERSION = "1.9600";
+$CPAN::HTTP::Client::VERSION = $CPAN::HTTP::Client::VERSION = "1.9601";
 
 # CPAN::HTTP::Client is adapted from parts of cpanm by Tatsuhiko Miyagawa
 # and parts of LWP by Gisle Aas
index f114321..a138128 100644 (file)
@@ -12,7 +12,7 @@ CPAN::HandleConfig - internal configuration handling for CPAN.pm
 
 =cut 
 
-$VERSION = "5.5003"; # see also CPAN::Config::VERSION at end of file
+$VERSION = "5.5005"; # see also CPAN::Config::VERSION at end of file
 
 %can = (
         commit   => "Commit changes to disk",
@@ -768,7 +768,7 @@ sub prefs_lookup {
 
     use strict;
     use vars qw($AUTOLOAD $VERSION);
-    $VERSION = "5.5002";
+    $VERSION = "5.5005";
 
     # formerly CPAN::HandleConfig was known as CPAN::Config
     sub AUTOLOAD { ## no critic
index f52bf36..8205d78 100644 (file)
@@ -1,7 +1,7 @@
 package CPAN::Index;
 use strict;
 use vars qw($LAST_TIME $DATE_OF_02 $DATE_OF_03 $HAVE_REANIMATED $VERSION);
-$VERSION = "1.9600";
+$VERSION = "1.9601";
 @CPAN::Index::ISA = qw(CPAN::Debug);
 $LAST_TIME ||= 0;
 $DATE_OF_03 ||= 0;
index 8a59862..fe8bf27 100644 (file)
@@ -6,7 +6,7 @@ use vars qw(@ISA $USER $PASSWD $SETUPDONE);
 use CPAN::HTTP::Credentials;
 # we delay requiring LWP::UserAgent and setting up inheritance until we need it
 
-$CPAN::LWP::UserAgent::VERSION = $CPAN::LWP::UserAgent::VERSION = "1.9600";
+$CPAN::LWP::UserAgent::VERSION = $CPAN::LWP::UserAgent::VERSION = "1.9601";
 
 
 sub config {
index 4304f53..37e7ce0 100644 (file)
@@ -34,7 +34,7 @@ CPAN::Mirrors - Get CPAN mirror information and select a fast one
 package CPAN::Mirrors;
 use strict;
 use vars qw($VERSION $urllist $silent);
-$VERSION = "1.9600";
+$VERSION = "1.9601";
 
 use Carp;
 use FileHandle;
index 4cbf6fe..a922a75 100644 (file)
@@ -8,7 +8,7 @@ use warnings;
 use Config;
 use Exporter;
 use vars qw($VERSION @ISA @EXPORT_OK %EXPORT_TAGS);
-$VERSION     = "0.22";
+$VERSION     = "0.23";
 @ISA         = ("Exporter");
 @EXPORT_OK   = qw( plv2hash summary myconfig signature );
 %EXPORT_TAGS = (
@@ -534,7 +534,7 @@ H.Merijn Brand <h.m.brand@xs4all.nl>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (C) 2009-2014 H.Merijn Brand
+Copyright (C) 2009-2015 H.Merijn Brand
 
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself.
index a0a220c..6113828 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 9;
+    my $tests = 12;
     unless ($ENV{PERL_CORE}) {
        require Test::NoWarnings;
        Test::NoWarnings->import ();
@@ -21,6 +21,11 @@ ok (my $conf = Config::Perl::V::myconfig,    "Read config");
 ok (exists $conf->{$_},        "Has $_ entry") for qw( build environment config inc );
 is (lc $conf->{build}{osname}, lc $conf->{config}{osname}, "osname");
 
+# Test summary
+ok (my $info1 = Config::Perl::V::summary ($conf), "Get a summary for \$conf");
+ok (my $info2 = Config::Perl::V::summary,         "Get a summary for \$^X");
+is_deeply ($info1, $info2, "Info should match");
+
 SKIP: {
     # Test that the code that shells out to perl -V and parses the output
     # gives the same results as the code that calls Config::* routines directly.
index eec1485..7a9135c 100644 (file)
@@ -1,10 +1,10 @@
 #
-# $Id: Encode.pm,v 2.67 2014/12/04 20:12:29 dankogai Exp $
+# $Id: Encode.pm,v 2.70 2015/02/05 10:52:16 dankogai Exp $
 #
 package Encode;
 use strict;
 use warnings;
-our $VERSION = sprintf "%d.%02d", q$Revision: 2.67 $ =~ /(\d+)/g;
+our $VERSION = sprintf "%d.%02d", q$Revision: 2.70 $ =~ /(\d+)/g;
 use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
 use XSLoader ();
 XSLoader::load( __PACKAGE__, $VERSION );
@@ -483,7 +483,7 @@ If the $string is C<undef>, then C<undef> is returned.
 
 This function returns the string that results from decoding the scalar
 value I<OCTETS>, assumed to be a sequence of octets in I<ENCODING>, into
-Perl's internal form.  The returns the resulting string.  As with encode(),
+Perl's internal form.  As with encode(),
 I<ENCODING> can be either a canonical name or an alias. For encoding names
 and aliases, see L</"Defining Aliases">; for I<CHECK>, see L</"Handling
 Malformed Data">.
@@ -573,7 +573,7 @@ Also note that:
 
   from_to($octets, $from, $to, $check);
 
-is equivalent t:o
+is equivalent to:
 
   $octets = encode($to, decode($from, $octets), $check);
 
@@ -700,7 +700,7 @@ In the first version above, you let the appropriate encoding layer
 handle the conversion.  In the second, you explicitly translate
 from one encoding to the other.
 
-Unfortunately, it may be that encodings are C<PerlIO>-savvy.  You can check
+Unfortunately, it may be that encodings are not C<PerlIO>-savvy.  You can check
 to see whether your encoding is supported by C<PerlIO> by invoking the
 C<perlio_ok> method on it:
 
@@ -836,7 +836,7 @@ Acts like C<FB_PERLQQ> but U+I<XXXX> is used instead of C<\x{I<XXXX>}>.
 
 Even the fallback for C<decode> must return octets, which are
 then decoded with the character encoding that C<decode> accepts. So for
-example if you wish to decode octests as UTF-8, and use ISO-8859-15 as
+example if you wish to decode octets as UTF-8, and use ISO-8859-15 as
 a fallback for bytes that are not valid UTF-8, you could write
 
     $str = decode 'UTF-8', $octets, sub {
index 0f12a7c..73f64a8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- $Id: Encode.xs,v 2.32 2014/11/27 14:08:33 dankogai Exp $
+ $Id: Encode.xs,v 2.33 2015/01/22 10:17:32 dankogai Exp $
  */
 
 #define PERL_NO_GET_CONTEXT
@@ -7,6 +7,7 @@
 #include "perl.h"
 #include "XSUB.h"
 #include "encode.h"
+#include "def_t.h"
 
 # define PERLIO_MODNAME  "PerlIO::encoding"
 # define PERLIO_FILENAME "PerlIO/encoding.pm"
@@ -1002,6 +1003,5 @@ OUTPUT:
 
 BOOT:
 {
-#include "def_t.h"
 #include "def_t.exh"
 }
index 18d5915..8193de3 100644 (file)
@@ -1,5 +1,5 @@
 #
-# $Id: Makefile.PL,v 2.12 2013/09/14 07:51:59 dankogai Exp $
+# $Id: Makefile.PL,v 2.13 2015/02/05 10:53:00 dankogai Exp dankogai $
 #
 use 5.007003;
 use strict;
@@ -23,6 +23,7 @@ my %tables =
 
 my @exe_files = qw(bin/enc2xs
            bin/piconv
+           bin/encguess
            );
 my @more_exe_files = qw(
             unidump
index 276a204..19f2b2b 100644 (file)
@@ -10,7 +10,7 @@ use warnings;
 use Getopt::Std;
 use Config;
 my @orig_ARGV = @ARGV;
-our $VERSION  = do { my @r = (q$Revision: 2.16 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+our $VERSION  = do { my @r = (q$Revision: 2.17 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
 
 # These may get re-ordered.
 # RAW is a do_now as inserted by &enter
@@ -133,10 +133,18 @@ my %opt;
 # -o <output> to specify the output file name (else it's the first arg)
 # -f <inlist> to give a file with a list of input files (else use the args)
 # -n <name> to name the encoding (else use the basename of the input file.
-getopts('CM:SQqOo:f:n:',\%opt);
+getopts('CM:SQqOo:f:n:v',\%opt);
 
 $opt{M} and make_makefile_pl($opt{M}, @ARGV);
 $opt{C} and make_configlocal_pm($opt{C}, @ARGV);
+$opt{v} ||= $ENV{ENC2XS_VERBOSE};
+
+sub verbose {
+    print STDERR @_ if $opt{v};
+}
+sub verbosef {
+    printf STDERR @_ if $opt{v};
+}
 
 # This really should go first, else the die here causes empty (non-erroneous)
 # output files to be written.
@@ -252,7 +260,7 @@ foreach my $enc (sort cmp_name @encfiles)
 
 if ($doC)
  {
-  print STDERR "Writing compiled form\n";
+  verbose "Writing compiled form\n";
   foreach my $name (sort cmp_name keys %encoding)
    {
     my ($e2u,$u2e,$erep,$min_el,$max_el) = @{$encoding{$name}};
@@ -272,8 +280,9 @@ if ($doC)
     # push(@{$encoding{$name}},outstring(\*C,$e2u->{Cname}.'_def',$erep));
    }
   my $cpp = ($Config{d_cplusplus} || '') eq 'define';
-  my $exta = $cpp ? 'extern "C" ' : "static";
-  my $extb = $cpp ? 'extern "C" ' : "";
+  my $ext  = $cpp ? 'extern "C"' : "extern";
+  my $exta = $cpp ? 'extern "C"' : "static";
+  my $extb = $cpp ? 'extern "C"' : "";
   foreach my $enc (sort cmp_name keys %encoding)
    {
     # my ($e2u,$u2e,$rep,$min_el,$max_el,$rsym) = @{$encoding{$enc}};
@@ -300,7 +309,7 @@ if ($doC)
    {
     my $sym = "${enc}_encoding";
     $sym =~ s/\W+/_/g;
-    print H "extern encode_t $sym;\n";
+    print H "${ext} encode_t $sym;\n";
     print D " Encode_XSEncoding(aTHX_ &$sym);\n";
    }
 
@@ -347,10 +356,10 @@ END
 
   my $perc_saved    = $saved/($strings + $saved) * 100;
   my $perc_subsaved = $subsave/($strings + $subsave) * 100;
-  printf STDERR "%d bytes in string tables\n",$strings;
-  printf STDERR "%d bytes (%.3g%%) saved spotting duplicates\n",
+  verbosef "%d bytes in string tables\n",$strings;
+  verbosef "%d bytes (%.3g%%) saved spotting duplicates\n",
     $saved, $perc_saved              if $saved;
-  printf STDERR "%d bytes (%.3g%%) saved using substrings\n",
+  verbosef "%d bytes (%.3g%%) saved using substrings\n",
     $subsave, $perc_subsaved         if $subsave;
  }
 elsif ($doEnc)
diff --git a/cpan/Encode/bin/encguess b/cpan/Encode/bin/encguess
new file mode 100644 (file)
index 0000000..5d7ac80
--- /dev/null
@@ -0,0 +1,145 @@
+#!./perl
+use 5.008001;
+use strict;
+use warnings;
+use Encode;
+use Getopt::Std;
+use Carp;
+use Encode::Guess;
+$Getopt::Std::STANDARD_HELP_VERSION = 1;
+
+my %opt;
+getopts( "huSs:", \%opt );
+my @suspect_list;
+list_valid_suspects() and exit if $opt{S};
+@suspect_list = split /:,/, $opt{s} if $opt{s};
+HELP_MESSAGE() if $opt{h};
+HELP_MESSAGE() unless @ARGV;
+do_guess($_) for @ARGV;
+
+sub read_file {
+    my $filename = shift;
+    local $/;
+    open my $fh, '<:raw', $filename or croak "$filename:$!";
+    my $content = <$fh>;
+    close $fh;
+    return $content;
+}
+
+sub do_guess {
+    my $filename = shift;
+    my $data     = read_file($filename);
+    my $enc      = guess_encoding( $data, @suspect_list );
+    if ( !ref($enc) && $opt{u} ) {
+        return 1;
+    }
+    print "$filename\t";
+    if ( ref($enc) ) {
+        print $enc->mime_name();
+    }
+    else {
+        print "unknown";
+    }
+    print "\n";
+    return 1;
+}
+
+sub list_valid_suspects {
+    print join( "\n", Encode->encodings(":all") );
+    print "\n";
+    return 1;
+}
+
+sub HELP_MESSAGE {
+    exec 'pod2usage', $0 or die "pod2usage: $!" 
+}
+__END__
+=head1 NAME
+
+encguess - guess character encodings of files
+
+=head1 VERSION
+
+$Id: encguess,v 0.1 2015/02/05 10:34:19 dankogai Exp $
+
+=head1 SYNOPSIS
+
+  encguess [switches] filename...
+
+=head2 SWITCHES
+
+=over 2
+
+=item -h
+
+show this message and exit.
+
+=item -s
+
+specify a list of "suspect encoding types" to test, 
+seperated by either C<:> or C<,>
+
+=item -S
+
+output a list of all acceptable encoding types that can be used with
+the -s param
+
+=item -u
+
+suppress display of unidentified types
+
+=back
+
+=head2 EXAMPLES:
+
+=over 2
+
+=item *
+
+Guess encoding of a file named C<test.txt>, using only the default
+suspect types.
+
+   encguess test.txt
+
+=item *
+
+Guess the encoding type of a file named C<test.txt>, using the suspect
+types C<euc-jp,shiftjis,7bit-jis>.
+
+   encguess -s euc-jp,shiftjis,7bit-jis test.txt
+   encguess -s euc-jp:shiftjis:7bit-jis test.txt
+
+=item *
+
+Guess the encoding type of several files, do not display results for
+unidentified files.
+
+   encguess -us euc-jp,shiftjis,7bit-jis test*.txt
+
+=back
+
+=head1 DESCRIPTION
+
+The encoding identification is done by checking one encoding type at a
+time until all but the right type are eliminated. The set of encoding
+types to try is defined by the -s parameter and defaults to ascii,
+utf8 and UTF-16/32 with BOM. This can be overridden by passing one or
+more encoding types via the -s parameter. If you need to pass in
+multiple suspect encoding types, use a quoted string with the a space
+separating each value.
+
+=head1 SEE ALSO
+
+L<Encode::Guess>, L<Encode::Detect>
+
+=head1 LICENSE AND COPYRIGHT
+
+Copyright 2015 Michael LaGrasta and Dan Kogai.
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the the Artistic License (2.0). You may obtain a
+copy of the full license at:
+
+L<http://www.perlfoundation.org/artistic_license_2_0>
+
+=cut
index 8674cfa..167c2fb 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: encoding.pm,v 2.12 2013/04/26 18:30:46 dankogai Exp $
+# $Id: encoding.pm,v 2.13 2013/04/26 18:30:46 dankogai Exp $
 package encoding;
-our $VERSION = sprintf "%d.%02d", q$Revision: 2.12 $ =~ /(\d+)/g;
+our $VERSION = sprintf "%d.%02d", q$Revision: 2.13 $ =~ /(\d+)/g;
 
 use Encode;
 use strict;
index 090a177..b970b62 100644 (file)
@@ -3,7 +3,7 @@ use strict;
 use warnings;
 no warnings 'redefine';
 
-our $VERSION = do { my @r = ( q$Revision: 2.15 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.16 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
 use Encode qw(find_encoding encode_utf8 decode_utf8);
 use MIME::Base64;
 use Carp;
@@ -139,7 +139,7 @@ sub encode($$;$) {
         push @line, join( "\n " => @subline );
     }
     $_[1] = '' if $chk;
-    return join( "\n", @line );
+    return (substr($str, 0, 0) . join( "\n", @line ));
 }
 
 use constant HEAD   => '=?UTF-8?';
index 1ad033b..2446dd7 100644 (file)
@@ -3,7 +3,8 @@ use strict;
 use Encode qw(encode decode);
 use Scalar::Util qw(tainted);
 use Test::More;
-my $str = "dan\x{5f3e}" . substr($ENV{PATH},0,0); # tainted string to encode
+my $taint = substr($ENV{PATH},0,0);
+my $str = "dan\x{5f3e}" . $taint;                 # tainted string to encode
 my $bin = encode('UTF-8', $str);                  # tainted binary to decode
 my @names = Encode->encodings(':all');
 plan tests => 2 * @names;
@@ -16,7 +17,7 @@ for my $name (@names) {
       skip $@, 1 if $@;
       ok tainted($e), "encode $name";
     }
-    $bin = $e if $e;
+    $bin = $e.$taint if $e;
     eval {
         $d = decode($name, $bin);
     };
index 1276acc..878cce8 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use warnings;
 # ABSTRACT: A small, simple, correct HTTP/1.1 client
 
-our $VERSION = '0.053';
+our $VERSION = '0.054';
 
 use Carp ();
 
@@ -1228,7 +1228,7 @@ sub write_content_body {
     }
 
     $len == $content_length
-      or die(qq/Content-Length missmatch (got: $len expected: $content_length)\n/);
+      or die(qq/Content-Length mismatch (got: $len expected: $content_length)\n/);
 
     return $len;
 }
@@ -1395,11 +1395,16 @@ sub _find_CA_file {
     return Mozilla::CA::SSL_ca_file()
         if eval { require Mozilla::CA };
 
-    foreach my $ca_bundle (qw{
-        /etc/ssl/certs/ca-certificates.crt
-        /etc/pki/tls/certs/ca-bundle.crt
-        /etc/ssl/ca-bundle.pem
-        }
+    # cert list copied from golang src/crypto/x509/root_unix.go
+    foreach my $ca_bundle (
+        "/etc/ssl/certs/ca-certificates.crt",     # Debian/Ubuntu/Gentoo etc.
+        "/etc/pki/tls/certs/ca-bundle.crt",       # Fedora/RHEL
+        "/etc/ssl/ca-bundle.pem",                 # OpenSUSE
+        "/etc/openssl/certs/ca-certificates.crt", # NetBSD
+        "/etc/ssl/cert.pem",                      # OpenBSD
+        "/usr/local/share/certs/ca-root-nss.crt", # FreeBSD/DragonFly
+        "/etc/pki/tls/cacert.pem",                # OpenELEC
+        "/etc/certs/ca-certificates.crt",         # Solaris 11.2+
     ) {
         return $ca_bundle if -e $ca_bundle;
     }
@@ -1458,7 +1463,7 @@ HTTP::Tiny - A small, simple, correct HTTP/1.1 client
 
 =head1 VERSION
 
-version 0.053
+version 0.054
 
 =head1 SYNOPSIS
 
@@ -2028,7 +2033,7 @@ David Golden <dagolden@cpan.org>
 
 =head1 CONTRIBUTORS
 
-=for stopwords Alan Gardner Alessandro Ghedini Brad Gilbert Chris Nehren Weyl Claes Jakobsson Clinton Gormley Craig Berry David Mitchell Dean Pearce Edward Zborowski James Raspass Jess Robinson Lukas Eklund Martin J. Evans Martin-Louis Bright Mike Doherty Petr Písař Serguei Trouchelle Sören Kornetzki Syohei YOSHIDA Tom Hukins Tony Cook
+=for stopwords Alan Gardner Alessandro Ghedini Brad Gilbert Chris Nehren Weyl Claes Jakobsson Clinton Gormley Craig Berry David Mitchell Dean Pearce Edward Zborowski James Raspass Jess Robinson Lukas Eklund Martin J. Evans Martin-Louis Bright Mike Doherty Olaf Alders Petr Písař Serguei Trouchelle Sören Kornetzki Syohei YOSHIDA Tom Hukins Tony Cook
 
 =over 4
 
@@ -2102,6 +2107,10 @@ Mike Doherty <doherty@cpan.org>
 
 =item *
 
+Olaf Alders <olaf@wundersolutions.com>
+
+=item *
+
 Petr Písař <ppisar@redhat.com>
 
 =item *
@@ -2128,7 +2137,7 @@ Tony Cook <tony@develop-help.com>
 
 =head1 COPYRIGHT AND LICENSE
 
-This software is copyright (c) 2014 by Christian Hansen.
+This software is copyright (c) 2015 by Christian Hansen.
 
 This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.
index e6196c4..0d5b54b 100644 (file)
@@ -3,7 +3,8 @@ use warnings;
 
 package Perl::OSType;
 # ABSTRACT: Map Perl operating system names to generic types
-our $VERSION = '1.007'; # VERSION
+
+our $VERSION = '1.008';
 
 require Exporter;
 our @ISA = qw(Exporter);
@@ -30,6 +31,7 @@ my %OSTYPES = qw(
   darwin      Unix
   machten     Unix
   midnightbsd Unix
+  minix       Unix
   mirbsd      Unix
   next        Unix
   openbsd     Unix
@@ -93,7 +95,7 @@ Perl::OSType - Map Perl operating system names to generic types
 
 =head1 VERSION
 
-version 1.007
+version 1.008
 
 =head1 SYNOPSIS
 
@@ -172,10 +174,16 @@ David Golden <dagolden@cpan.org>
 
 =head1 CONTRIBUTORS
 
+=for stopwords Chris 'BinGOs' Williams Jonas B. Nielsen Owain G. Ainsworth Paul Green Piotr Roszatycki
+
 =over 4
 
 =item *
 
+Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
+
+=item *
+
 Jonas B. Nielsen <jonasbn@hoarfrost.local>
 
 =item *
@@ -194,7 +202,7 @@ Piotr Roszatycki <piotr.roszatycki@gmail.com>
 
 =head1 COPYRIGHT AND LICENSE
 
-This software is copyright (c) 2014 by David Golden.
+This software is copyright (c) 2015 by David Golden.
 
 This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.
index 6149e79..f258f26 100644 (file)
@@ -14,7 +14,7 @@ package Pod::Find;
 use strict;
 
 use vars qw($VERSION);
-$VERSION = '1.62';   ## Current version of this package
+$VERSION = '1.63';   ## Current version of this package
 require  5.005;   ## requires this Perl version or later
 use Carp;
 
@@ -56,7 +56,7 @@ so be sure to specify them in the B<use> statement if you need them:
   use Pod::Find qw(pod_find);
 
 From this version on the typical SCM (software configuration management)
-files/directories like RCS, CVS, SCCS, .svn are ignored.
+directories are ignored. These are: RCS, CVS, SCCS, .svn, .hg, .git, .sync
 
 =cut
 
@@ -226,7 +226,7 @@ sub pod_find
         File::Find::find( sub {
             my $item = $File::Find::name;
             if(-d) {
-                if($item =~ m{/(?:RCS|CVS|SCCS|\.svn)$}) {
+                if($item =~ m{/(?:RCS|CVS|SCCS|\.svn|\.hg|\.git|\.sync)$}) {
                     $File::Find::prune = 1;
                     return;
                 }
index 87ce247..c4d6fc2 100644 (file)
@@ -12,7 +12,7 @@ package Pod::InputObjects;
 use strict;
 
 use vars qw($VERSION);
-$VERSION = '1.62';  ## Current version of this package
+$VERSION = '1.63';  ## Current version of this package
 require  5.005;    ## requires this Perl version or later
 
 #############################################################################
index e1ff2ae..2afd0cd 100644 (file)
@@ -11,7 +11,7 @@ package Pod::ParseUtils;
 use strict;
 
 use vars qw($VERSION);
-$VERSION = '1.62'; ## Current version of this package
+$VERSION = '1.63'; ## Current version of this package
 require  5.005;    ## requires this Perl version or later
 
 =head1 NAME
index f3a8619..63edcd2 100644 (file)
@@ -12,7 +12,7 @@ use strict;
 
 ## These "variables" are used as local "glob aliases" for performance
 use vars qw($VERSION @ISA %myData %myOpts @input_stack);
-$VERSION = '1.62';  ## Current version of this package
+$VERSION = '1.63';  ## Current version of this package
 require  5.005;    ## requires this Perl version or later
 
 #############################################################################
index 5f93b88..3db4d90 100644 (file)
@@ -29,7 +29,7 @@ use vars qw(@ISA %ESCAPES $VERSION);
 # by Pod::Usage.
 @ISA = qw(Pod::Select);
 
-$VERSION = '2.06';
+$VERSION = '2.07';
 
 BEGIN {
    if ($] < 5.006) {
index 6657def..70267e9 100644 (file)
@@ -11,7 +11,7 @@ package Pod::Select;
 use strict;
 
 use vars qw($VERSION @ISA @EXPORT $MAX_HEADING_LEVEL %myData @section_headings @selected_sections);
-$VERSION = '1.62'; ## Current version of this package
+$VERSION = '1.63'; ## Current version of this package
 require  5.005;    ## requires this Perl version or later
 
 #############################################################################
index 7cfd7ae..90a57ad 100644 (file)
@@ -67,6 +67,12 @@ if($^O =~ /dos|win32/i && $resfile =~ /~\d(?=\\|$)/) {
     $resfile =~ s/\\~\d(?=\\|$)/[^\\\\]+/g;\r
     ok($cmpfile =~ /^$resfile$/, "pod_where found File::Find (with long filename matching)") ||\r
       diag("'$cmpfile' does not match /^$resfile\$/");\r
+} elsif($^O =~ /dos|win32/i && $cmpfile =~ /~\d(?=\\|$)/) {\r
+    # we have ~1 short filenames\r
+    $cmpfile = quotemeta($cmpfile);\r
+    $cmpfile =~ s/\\~\d(?=\\|$)/[^\\\\]+/g;\r
+    ok($resfile =~ /^$cmpfile$/, "pod_where found File::Find (with long filename matching)") ||\r
+      diag("'$resfile' does not match /^$cmpfile\$/");\r
 } else {\r
     is($resfile,$cmpfile,"pod_where found File::Find");\r
 }\r
index a807b2c..f76d364 100644 (file)
@@ -35,16 +35,17 @@ WriteMakefile(
 
     ($ENV{PERL_CORE} ? () : ('EXE_FILES' => [qw( perldoc )])),
 
-       'META_MERGE' => {
-               no_index => {
-                       directory => 'corpus',
-                       },
+    'META_MERGE' => {
+        no_index => {
+            directory => 'corpus',
+        },
         resources => {
             repository => 'https://github.com/mrallen1/Pod-Perldoc.git',
-            },
-               },
+        },
+    },
 
-    'MAN1PODS' => { 'perldoc.pod' => 'blib/man1/perldoc.1' },
+    ($ENV{PERL_CORE} ? () :
+        ('MAN1PODS' => { 'perldoc.pod' => 'blib/man1/perldoc.1' })),
 
     ($^V >= 5.008001 && $^V < 5.012 ? ( 'INSTALLDIRS'  => 'perl' ) : ()),
 
@@ -52,7 +53,7 @@ WriteMakefile(
         'LICENSE' => 'perl',
     ) : () ),
 
-       test => {TESTS => 't/*.t t/*/*.t'}
+    test => {TESTS => 't/*.t t/*/*.t'}
 );
 
 package MY;
index d1d7cf6..969019d 100644 (file)
@@ -12,7 +12,7 @@ use File::Spec::Functions qw(catfile catdir splitdir);
 use vars qw($VERSION @Pagers $Bindir $Pod2man
   $Temp_Files_Created $Temp_File_Lifetime
 );
-$VERSION = '3.24';
+$VERSION = '3.25';
 
 #..........................................................................
 
@@ -432,6 +432,16 @@ sub init {
   # Make sure creat()s are neither too much nor too little
   eval { umask(0077) };   # doubtless someone has no mask
 
+  if ( $] < 5.008 ) {
+      $self->aside("Your old perl doesn't have proper unicode support.");
+    }
+  else {
+      # http://www.perl.com/pub/2012/04/perlunicookbook-decode-argv-as-utf8.html
+      # Decode command line arguments as UTF-8. See RT#98906 for example problem.
+      use Encode qw(decode_utf8);
+      @ARGV = map { decode_utf8($_, 1) } @ARGV;
+    }
+
   $self->{'args'}              ||= \@ARGV;
   $self->{'found'}             ||= [];
   $self->{'temp_file_list'}    ||= [];
@@ -1028,6 +1038,33 @@ sub add_translator { # $self->add_translator($lang);
 
 #..........................................................................
 
+sub open_fh {
+    my ($self, $op, $path) = @_;
+
+    open my $fh, $op, $path or $self->die("Couldn't open $path: $!");
+    return $fh;
+}
+
+sub set_encoding {
+    my ($self, $fh, $encoding) = @_;
+
+    if ( $encoding =~ /utf-?8/i ) {
+        $encoding = ":encoding(UTF-8)";
+    }
+    else {
+        $encoding = ":encoding($encoding)";
+    }
+
+    if ( $] < 5.008 ) {
+        $self->aside("Your old perl doesn't have proper unicode support.");
+    }
+    else {
+        binmode($fh, $encoding);
+    }
+
+    return $fh;
+}
+
 sub search_perlvar {
     my($self, $found_things, $pod) = @_;
 
@@ -1040,10 +1077,8 @@ sub search_perlvar {
     DEBUG > 2 and print "Search: @$found_things\n";
 
     my $perlvar = shift @$found_things;
-    open(PVAR, "<", $perlvar)               # "Funk is its own reward"
-        or $self->die("Can't open $perlvar: $!");
+    my $fh = $self->open_fh("<", $perlvar);
 
-    binmode(PVAR, ":encoding(UTF-8)");
     if ( $opt ne '$0' && $opt =~ /^\$\d+$/ ) { # handle $1, $2, ...
       $opt = '$<I<digits>>';
     }
@@ -1054,15 +1089,19 @@ sub search_perlvar {
 
     # Skip introduction
     local $_;
-    while (<PVAR>) {
+    my $enc;
+    while (<$fh>) {
+        $enc = $1 if /^=encoding\s+(\S+)/;
         last if /^=over 8/;
     }
 
+    $fh = $self->set_encoding($fh, $enc) if $enc;
+
     # Look for our variable
     my $found = 0;
     my $inheader = 1;
     my $inlist = 0;
-    while (<PVAR>) {  # "The Mothership Connection is here!"
+    while (<$fh>) {  
         last if /^=head2 Error Indicators/;
         # \b at the end of $` and friends borks things!
         if ( m/^=item\s+$search_re\s/ )  {
@@ -1096,7 +1135,7 @@ sub search_perlvar {
     if (!@$pod) {
         CORE::die( "No documentation for perl variable '$opt' found\n" );
     }
-    close PVAR                or $self->die( "Can't open $perlvar: $!" );
+    close $fh                or $self->die( "Can't close $perlvar: $!" );
 
     return;
 }
@@ -1112,8 +1151,7 @@ sub search_perlop {
   # XXX FIXME: getting filehandles should probably be done in a single place
   # especially since we need to support UTF8 or other encoding when dealing
   # with perlop, perlfunc, perlapi, perlfaq[1-9]
-  open( PERLOP, '<', $perlop ) or $self->die( "Can't open $perlop: $!" );
-  binmode(PERLOP, ":encoding(UTF-8)");
+  my $fh = $self->open_fh('<', $perlop);
 
   my $thing = $self->opt_f;
 
@@ -1122,7 +1160,8 @@ sub search_perlop {
   my $seen_item = 0;
   my $skip = 1;
 
-  while( my $line = <PERLOP> ) {
+  while( my $line = <$fh> ) {
+    $line =~ /^=encoding\s+(\S+)/ && $self->set_encoding($fh, $1);
     # only start search after we hit the operator section
     if ($line =~ m!^X<operator, regexp>!) {
         $skip = 0;
@@ -1176,7 +1215,7 @@ sub search_perlop {
     DEBUG > 4 and print "No pod from perlop\n";
   }
 
-  close PERLOP;
+  close $fh;
 
   return;
 }
@@ -1189,25 +1228,13 @@ sub search_perlapi {
     DEBUG > 2 and print "Search: @$found_things\n";
 
     my $perlapi = shift @$found_things;
-    open(PAPI, "<", $perlapi)               # "Funk is its own reward"
-        or $self->die("Can't open $perlapi: $!");
+    my $fh = $self->open_fh('<', $perlapi);
 
     my $search_re = quotemeta($self->opt_a);
 
     DEBUG > 2 and
      print "Going to perlapi-scan for $search_re in $perlapi\n";
 
-    # Check available translator or backup to default (english)
-    if ( $self->opt_L && defined $self->{'translators'}->[0] ) {
-        my $tr = $self->{'translators'}->[0];
-        if ( $] < 5.008 ) {
-            $self->aside("Your old perl doesn't really have proper unicode support.");
-        }
-        else {
-            binmode(PAPI, ":encoding(UTF-8)");
-        }
-    }
-
     local $_;
 
     # Look for our function
@@ -1216,7 +1243,9 @@ sub search_perlapi {
 
     my @related;
     my $related_re;
-    while (<PAPI>) {  # "The Mothership Connection is here!"
+    while (<$fh>) {
+        /^=encoding\s+(\S+)/ && $self->set_encoding($fh, $1);
+
         if ( m/^=item\s+$search_re\b/ )  {
             $found = 1;
         }
@@ -1253,7 +1282,7 @@ sub search_perlapi {
           $self->opt_a )
         ;
     }
-    close PAPI                or $self->die( "Can't open $perlapi: $!" );
+    close $fh                or $self->die( "Can't open $perlapi: $!" );
 
     return;
 }
@@ -1265,16 +1294,15 @@ sub search_perlfunc {
 
     DEBUG > 2 and print "Search: @$found_things\n";
 
-    my $perlfunc = shift @$found_things;
-    open(PFUNC, "<", $perlfunc)               # "Funk is its own reward"
-        or $self->die("Can't open $perlfunc: $!");
+    my $pfunc = shift @$found_things;
+    my $fh = $self->open_fh("<", $pfunc); # "Funk is its own reward"
 
     # Functions like -r, -e, etc. are listed under `-X'.
     my $search_re = ($self->opt_f =~ /^-[rwxoRWXOeszfdlpSbctugkTBMAC]$/)
                         ? '(?:I<)?-X' : quotemeta($self->opt_f) ;
 
     DEBUG > 2 and
-     print "Going to perlfunc-scan for $search_re in $perlfunc\n";
+     print "Going to perlfunc-scan for $search_re in $pfunc\n";
 
     my $re = 'Alphabetical Listing of Perl Functions';
 
@@ -1285,14 +1313,12 @@ sub search_perlfunc {
         if ( $] < 5.008 ) {
             $self->aside("Your old perl doesn't really have proper unicode support.");
         }
-        else {
-            binmode(PFUNC, ":encoding(UTF-8)");
-        }
     }
 
     # Skip introduction
     local $_;
-    while (<PFUNC>) {
+    while (<$fh>) {
+        /^=encoding\s+(\S+)/ && $self->set_encoding($fh, $1);
         last if /^=head2 $re/;
     }
 
@@ -1304,7 +1330,7 @@ sub search_perlfunc {
 
     my @related;
     my $related_re;
-    while (<PFUNC>) {  # "The Mothership Connection is here!"
+    while (<$fh>) {  # "The Mothership Connection is here!"
         last if( grep{ $self->opt_f eq $_ }@perlops );
 
         if ( /^=over/ and not $found ) {
@@ -1354,7 +1380,7 @@ sub search_perlfunc {
           $self->opt_f )
         ;
     }
-    close PFUNC                or $self->die( "Can't close $perlfunc: $!" );
+    close $fh                or $self->die( "Can't close $pfunc: $!" );
 
     return;
 }
@@ -1379,10 +1405,9 @@ EOD
     local $_;
     foreach my $file (@$found_things) {
         $self->die( "invalid file spec: $!" ) if $file =~ /[<>|]/;
-        open(INFAQ, "<", $file)  # XXX 5.6ism
-         or $self->die( "Can't read-open $file: $!\nAborting" );
-        binmode(INFAQ, ":encoding(UTF-8)");
-        while (<INFAQ>) {
+        my $fh = $self->open_fh("<", $file);
+        while (<$fh>) {
+            /^=encoding\s+(\S+)/ && $self->set_encoding($fh, $1);
             if ( m/^=head2\s+.*(?:$search_key)/i ) {
                 $found = 1;
                 push @$pod, "=head1 Found in $file\n\n" unless $found_in{$file}++;
@@ -1393,7 +1418,7 @@ EOD
             next unless $found;
             push @$pod, $_;
         }
-        close(INFAQ);
+        close($fh);
     }
     CORE::die("No documentation for perl FAQ keyword '$search_key' found\n")
      unless @$pod;
@@ -1617,6 +1642,9 @@ sub minus_f_nocase {   # i.e., do like -f, but without regard to case
 #..........................................................................
 
 sub pagers_guessing {
+    # TODO: This whole subroutine needs to be rewritten. It's semi-insane
+    # right now.
+
     my $self = shift;
 
     my @pagers;
@@ -1653,6 +1681,7 @@ sub pagers_guessing {
         unshift @pagers, "$ENV{PERLDOC_SRC_PAGER}" if $ENV{PERLDOC_SRC_PAGER}
     }
     else {
+        unshift @pagers, "$ENV{MANPAGER} <" if $ENV{MANPAGER};
         unshift @pagers, "$ENV{PERLDOC_PAGER} <" if $ENV{PERLDOC_PAGER};
     }
 
@@ -1732,9 +1761,9 @@ sub isprintable {
 
        my $data;
        local($_);
-       open(TEST,"<", $file)     or $self->die( "Can't open $file: $!" );
-       read TEST, $data, $size;
-       close TEST;
+       my $fh = $self->open_fh("<", $file);
+       read $fh, $data, $size;
+       close $fh;
        $size= length($data);
        $data =~ tr/\x09-\x0D\x20-\x7E//d;
        return length($data) <= $size*$maxunprintfrac;
@@ -1767,14 +1796,14 @@ sub containspod {
     }
 
     local($_);
-    open(TEST,"<", $file)   or $self->die( "Can't open $file: $!" );   # XXX 5.6ism
-    while (<TEST>) {
+    my $fh = $self->open_fh("<", $file);
+    while (<$fh>) {
     if (/^=head/) {
-        close(TEST)     or $self->die( "Can't close $file: $!" );
+        close($fh)     or $self->die( "Can't close $file: $!" );
         return 1;
     }
     }
-    close(TEST)         or $self->die( "Can't close $file: $!" );
+    close($fh)         or $self->die( "Can't close $file: $!" );
     return 0;
 }
 
@@ -1810,15 +1839,8 @@ sub new_output_file {
 
   # Otherwise open a write-handle on opt_d!f
 
-  my $fh;
-  # If we are running before perl5.6.0, we can't autovivify
-  if ($^V < 5.006) {
-    require Symbol;
-    $fh = Symbol::gensym();
-  }
   DEBUG > 3 and print "About to try writing to specified output file $outspec\n";
-  $self->die( "Can't write-open $outspec: $!" )
-   unless open($fh, ">", $outspec); # XXX 5.6ism
+  my $fh = $self->open_fh(">", $outspec);
 
   DEBUG > 3 and print "Successfully opened $outspec\n";
   binmode($fh) if $self->{'output_is_binary'};
@@ -1872,12 +1894,12 @@ sub page {  # apply a pager to the output file
     my ($self, $output, $output_to_stdout, @pagers) = @_;
     if ($output_to_stdout) {
         $self->aside("Sending unpaged output to STDOUT.\n");
-        open(TMP, "<", $output)  or  $self->die( "Can't open $output: $!" ); # XXX 5.6ism
+        my $fh = $self->open_fh("<", $output);
         local $_;
-        while (<TMP>) {
+        while (<$fh>) {
             print or $self->die( "Can't print to stdout: $!" );
         }
-        close TMP  or $self->die( "Can't close while $output: $!" );
+        close $fh or $self->die( "Can't close while $output: $!" );
         $self->unlink_if_temp_file($output);
     } else {
         # On VMS, quoting prevents logical expansion, and temp files with no
@@ -1895,6 +1917,9 @@ sub page {  # apply a pager to the output file
             if ($self->is_vms) {
                 last if system("$pager $output") == 0;
             } else {
+                # fix visible escape codes in ToTerm output
+                # https://bugs.debian.org/758689
+                local $ENV{LESS} = defined $ENV{LESS} ? "$ENV{LESS} -R" : "-R";
                 last if system("$pager \"$output\"") == 0;
             }
         }
index 29eb7fb..304da44 100644 (file)
@@ -3,7 +3,7 @@ use strict;
 use warnings;
 
 use vars qw($VERSION);
-$VERSION = '3.24';
+$VERSION = '3.25';
 
 use Carp                  qw(croak carp);
 use Config                qw(%Config);
@@ -106,7 +106,7 @@ Pod::Perldoc::BaseTo - Base for Pod::Perldoc formatters
 
     package Pod::Perldoc::ToMyFormat;
 
-    use base qw( Pod::Perldoc::BaseTo );
+    use parent qw( Pod::Perldoc::BaseTo );
     ...
 
 =head1 DESCRIPTION
index e05b953..71fcc7b 100644 (file)
@@ -2,7 +2,7 @@ package Pod::Perldoc::GetOptsOO;
 use strict;
 
 use vars qw($VERSION);
-$VERSION = '3.24';
+$VERSION = '3.25';
 
 BEGIN { # Make a DEBUG constant ASAP
   *DEBUG = defined( &Pod::Perldoc::DEBUG )
index 19a14ba..26a11d3 100644 (file)
@@ -4,7 +4,7 @@ use warnings;
 use parent qw(Pod::Perldoc::BaseTo);
 
 use vars qw($VERSION);
-$VERSION = '3.24';
+$VERSION = '3.25';
 
 sub is_pageable        { 1 }
 sub write_with_binmode { 0 }
index b153b76..3d161ac 100644 (file)
@@ -4,7 +4,7 @@ use warnings;
 use vars qw(@ISA);
 
 use vars qw($VERSION);
-$VERSION = '3.24';
+$VERSION = '3.25';
 
 # Pick our superclass...
 #
index 7ee17b1..e22e050 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 use parent qw(Pod::Perldoc::BaseTo);
 
 use vars qw($VERSION);
-$VERSION = '3.24';
+$VERSION = '3.25';
 
 use File::Spec::Functions qw(catfile);
 use Pod::Man 2.18;
index 9b7f210..ac4a8aa 100644 (file)
@@ -4,7 +4,7 @@ use warnings;
 use parent qw(Pod::Perldoc::BaseTo);
 
 use vars qw($VERSION);
-$VERSION = '3.24';
+$VERSION = '3.25';
 
 # This is unlike ToMan.pm in that it emits the raw nroff source!
 
index 777bae1..8433e8c 100644 (file)
@@ -4,7 +4,7 @@ use warnings;
 use parent qw(Pod::Perldoc::BaseTo);
 
 use vars qw($VERSION);
-$VERSION = '3.24';
+$VERSION = '3.25';
 
 sub is_pageable        { 1 }
 sub write_with_binmode { 0 }
index 392ea1e..81f019f 100644 (file)
@@ -4,7 +4,7 @@ use warnings;
 use parent qw( Pod::Simple::RTF );
 
 use vars qw($VERSION);
-$VERSION = '3.24';
+$VERSION = '3.25';
 
 sub is_pageable        { 0 }
 sub write_with_binmode { 0 }
index bbc0755..e97a775 100644 (file)
@@ -3,7 +3,7 @@ use strict;
 use warnings;
 
 use vars qw($VERSION);
-$VERSION = '3.24';
+$VERSION = '3.25';
 
 use parent qw(Pod::Perldoc::BaseTo);
 
index 69a2f29..dbd4743 100644 (file)
@@ -3,7 +3,7 @@ use strict;
 use warnings;
 
 use vars qw($VERSION);
-$VERSION = '3.24';
+$VERSION = '3.25';
 
 use parent qw(Pod::Perldoc::BaseTo);
 
index 5b87153..40b51c5 100644 (file)
@@ -3,7 +3,7 @@ use strict;
 use warnings;
 
 use vars qw($VERSION);
-$VERSION = '3.24';
+$VERSION = '3.25';
 
 use parent qw(Pod::Perldoc::BaseTo);
 
index f1670e3..9da514f 100644 (file)
@@ -6,7 +6,7 @@ use vars qw($VERSION);
 use parent qw( Pod::Simple::XMLOutStream );
 
 use vars qw($VERSION);
-$VERSION = '3.24';
+$VERSION = '3.25';
 
 sub is_pageable        { 0 }
 sub write_with_binmode { 0 }
index e2f870b..41563ab 100644 (file)
@@ -4,7 +4,7 @@ use warnings;
 
 {
 package Local::ToMan;
-use base 'Pod::Perldoc::ToMan';
+use parent 'Pod::Perldoc::ToMan';
 use vars qw( $stty_text $is_linux $warning );
 no warnings 'redefine';
 no strict 'refs';
index aa105cd..46e063d 100644 (file)
@@ -210,14 +210,15 @@ my @names = (
 
        SOMAXCONN
 
-       SO_ACCEPTCONN SO_ATTACH_FILTER SO_BACKLOG SO_BROADCAST SO_CHAMELEON
-       SO_DEBUG SO_DETACH_FILTER SO_DGRAM_ERRIND SO_DOMAIN SO_DONTLINGER
-       SO_DONTROUTE SO_ERROR SO_FAMILY SO_KEEPALIVE SO_LINGER SO_OOBINLINE
-       SO_PASSCRED SO_PASSIFNAME SO_PEERCRED SO_PROTOCOL SO_PROTOTYPE
-       SO_RCVBUF SO_RCVLOWAT SO_RCVTIMEO SO_REUSEADDR SO_REUSEPORT
+       SO_ACCEPTCONN SO_ATTACH_FILTER SO_BACKLOG SO_BINDTODEVICE SO_BROADCAST
+       SO_BSDCOMPAT SO_BUSY_POLL SO_CHAMELEON SO_DEBUG SO_DETACH_FILTER
+       SO_DGRAM_ERRIND SO_DOMAIN SO_DONTLINGER SO_DONTROUTE SO_ERROR SO_FAMILY
+       SO_KEEPALIVE SO_LINGER SO_MARK SO_OOBINLINE SO_PASSCRED SO_PASSIFNAME
+       SO_PEEK_OFF SO_PEERCRED SO_PRIORITY SO_PROTOCOL SO_PROTOTYPE SO_RCVBUF
+       SO_RCVLOWAT SO_RCVTIMEO SO_REUSEADDR SO_REUSEPORT
        SO_SECURITY_AUTHENTICATION SO_SECURITY_ENCRYPTION_NETWORK
        SO_SECURITY_ENCRYPTION_TRANSPORT SO_SNDBUF SO_SNDLOWAT SO_SNDTIMEO
-       SO_STATE SO_TYPE SO_USELOOPBACK SO_XOPEN SO_XSE
+       SO_STATE SO_TIMESTAMP SO_TYPE SO_USELOOPBACK SO_XOPEN SO_XSE
 
        TCP_CONGESTION TCP_CONNECTIONTIMEOUT TCP_CORK TCP_DEFER_ACCEPT TCP_INFO
        TCP_INIT_CWND TCP_KEEPALIVE TCP_KEEPCNT TCP_KEEPIDLE TCP_KEEPINTVL
index 04d0e15..20657e8 100644 (file)
@@ -3,7 +3,7 @@ package Socket;
 use strict;
 { use 5.006001; }
 
-our $VERSION = '2.016';
+our $VERSION = '2.018';
 
 =head1 NAME
 
index 31571bf..60f5754 100644 (file)
@@ -95,7 +95,7 @@ NETINET_DEFINE_CONTEXT
 #endif /* !Newx */
 
 #ifndef croak_sv
-# define croak_sv(sv)  croak(SvPV_nolen(sv))
+# define croak_sv(sv)  croak(SvPVx_nolen(sv))
 #endif
 
 #ifndef hv_stores
@@ -530,6 +530,7 @@ static void xs_getnameinfo(pTHX_ CV *cv)
        SP -= items;
 
        addr = ST(0);
+       SvGETMAGIC(addr);
 
        if(items < 2)
                flags = 0;
@@ -544,7 +545,7 @@ static void xs_getnameinfo(pTHX_ CV *cv)
        want_host = !(xflags & NIx_NOHOST);
        want_serv = !(xflags & NIx_NOSERV);
 
-       if(!SvPOK(addr))
+       if(!SvPOKp(addr))
                croak("addr is not a string");
 
        addr_len = SvCUR(addr);
@@ -635,10 +636,10 @@ inet_ntoa(ip_address_sv)
         * so let's use this sprintf() workaround everywhere.
         * This is also more threadsafe than using inet_ntoa(). */
        ST(0) = sv_2mortal(Perl_newSVpvf(aTHX_ "%d.%d.%d.%d", /* IPv6? */
-                                        ((addr.s_addr >> 24) & 0xFF),
-                                        ((addr.s_addr >> 16) & 0xFF),
-                                        ((addr.s_addr >>  8) & 0xFF),
-                                        ( addr.s_addr        & 0xFF)));
+                                        (int)((addr.s_addr >> 24) & 0xFF),
+                                        (int)((addr.s_addr >> 16) & 0xFF),
+                                        (int)((addr.s_addr >>  8) & 0xFF),
+                                        (int)( addr.s_addr        & 0xFF)));
        }
 
 void
@@ -793,10 +794,10 @@ pack_sockaddr_in(port, ip_address_sv)
        ip_address = SvPVbyte(ip_address_sv, addrlen);
        if (addrlen == sizeof(addr) || addrlen == 4)
                addr.s_addr =
-                   (ip_address[0] & 0xFF) << 24 |
-                   (ip_address[1] & 0xFF) << 16 |
-                   (ip_address[2] & 0xFF) <<  8 |
-                   (ip_address[3] & 0xFF);
+                   (unsigned int)(ip_address[0] & 0xFF) << 24 |
+                   (unsigned int)(ip_address[1] & 0xFF) << 16 |
+                   (unsigned int)(ip_address[2] & 0xFF) <<  8 |
+                   (unsigned int)(ip_address[3] & 0xFF);
        else
                croak("Bad arg length for %s, length is %"UVuf", should be %"UVuf,
                      "Socket::pack_sockaddr_in",
@@ -876,6 +877,8 @@ pack_sockaddr_in6(port, sin6_addr, scope_id=0, flowinfo=0)
 #  endif
        ST(0) = sv_2mortal(newSVpvn((char *)&sin6, sizeof(sin6)));
 #else
+       PERL_UNUSED_VAR(port);
+       PERL_UNUSED_VAR(sin6_addr);
        ST(0) = (SV*)not_here("pack_sockaddr_in6");
 #endif
        }
@@ -914,6 +917,7 @@ unpack_sockaddr_in6(sin6_sv)
            mPUSHs(ip_address_sv);
        }
 #else
+       PERL_UNUSED_VAR(sin6_sv);
        ST(0) = (SV*)not_here("pack_sockaddr_in6");
 #endif
        }
@@ -973,6 +977,8 @@ inet_ntop(af, ip_address_sv)
 
        ST(0) = sv_2mortal(newSVpvn(str, strlen(str)));
 #else
+       PERL_UNUSED_VAR(af);
+       PERL_UNUSED_VAR(ip_address_sv);
        ST(0) = (SV*)not_here("inet_ntop");
 #endif
 
@@ -1015,6 +1021,8 @@ inet_pton(af, host)
                sv_setpvn( ST(0), (char *)&ip_address, addrlen);
        }
 #else
+       PERL_UNUSED_VAR(af);
+       PERL_UNUSED_VAR(host);
        ST(0) = (SV*)not_here("inet_pton");
 #endif
 
@@ -1116,6 +1124,8 @@ pack_ip_mreq_source(multiaddr, source, interface=&PL_sv_undef)
                mreq.imr_interface.s_addr = INADDR_ANY;
        ST(0) = sv_2mortal(newSVpvn((char *)&mreq, sizeof(mreq)));
 #else
+       PERL_UNUSED_VAR(multiaddr);
+       PERL_UNUSED_VAR(source);
        not_here("pack_ip_mreq_source");
 #endif
        }
@@ -1138,6 +1148,7 @@ unpack_ip_mreq_source(mreq_sv)
        mPUSHp((char *)&mreq.imr_sourceaddr, sizeof(mreq.imr_sourceaddr));
        mPUSHp((char *)&mreq.imr_interface, sizeof(mreq.imr_interface));
 #else
+       PERL_UNUSED_VAR(mreq_sv);
        not_here("unpack_ip_mreq_source");
 #endif
        }
@@ -1163,6 +1174,8 @@ pack_ipv6_mreq(multiaddr, ifindex)
        mreq.ipv6mr_interface = ifindex;
        ST(0) = sv_2mortal(newSVpvn((char *)&mreq, sizeof(mreq)));
 #else
+       PERL_UNUSED_VAR(multiaddr);
+       PERL_UNUSED_VAR(ifindex);
        not_here("pack_ipv6_mreq");
 #endif
        }
@@ -1184,6 +1197,7 @@ unpack_ipv6_mreq(mreq_sv)
        mPUSHp((char *)&mreq.ipv6mr_multiaddr, sizeof(mreq.ipv6mr_multiaddr));
        mPUSHi(mreq.ipv6mr_interface);
 #else
+       PERL_UNUSED_VAR(mreq_sv);
        not_here("unpack_ipv6_mreq");
 #endif
        }
index 1df639b..c5655bc 100644 (file)
@@ -1,6 +1,6 @@
 use strict;
 use warnings;
-use Test::More tests => 12;
+use Test::More tests => 13;
 
 use Socket qw(:addrinfo AF_INET pack_sockaddr_in inet_aton);
 
@@ -32,3 +32,8 @@ ok( length $host, '$host is nonzero length for NS' );
 cmp_ok( $err, "==", 0, '$err == 0 for {family=AF_INET,port=80,sinaddr=127.0.0.1}/NI_NUMERICHOST' );
 
 ok( length $service, '$service is nonzero length for NH' );
+
+# RT79557
+pack_sockaddr_in( 80, inet_aton( "127.0.0.1" ) ) =~ m/^(.*)$/s;
+( $err, $host, $service ) = getnameinfo( $1, NI_NUMERICHOST|NI_NUMERICSERV );
+cmp_ok( $err, "==", 0, '$err == 0 for $1' ) or diag( '$err was: ' . $err );
index c690851..11dadc7 100644 (file)
@@ -4,7 +4,7 @@ use 5.008001;
 use strict;
 use warnings;
 
-our $VERSION = '1.301001_097';
+our $VERSION = '1.301001_098';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 
@@ -955,6 +955,8 @@ __END__
 
 =pod
 
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Builder - *DEPRECATED* Module for building testing libraries.
@@ -1217,8 +1219,6 @@ work, however in the distant future it will be removed. L<Test::Stream> upon
 which Test::Builder is now built, provides hooks and API's for doing everything
 that previously required monkeypatching.
 
-=encoding utf8
-
 =head1 TUTORIALS
 
 =over 4
index ff109f8..a5d8eba 100644 (file)
@@ -8,9 +8,12 @@ use Test::Builder 0.99;
 require Exporter;
 our @ISA = qw(Exporter);
 
-our $VERSION = '1.301001_097';
+our $VERSION = '1.301001_098';
 $VERSION = eval $VERSION;      ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
+=pod
+
+=encoding UTF-8
 
 =head1 NAME
 
@@ -185,8 +188,6 @@ sub builder {
 
 __END__
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 324f91e..8762147 100644 (file)
@@ -1,7 +1,7 @@
 package Test::Builder::Tester;
 
 use strict;
-our $VERSION = '1.301001_097';
+our $VERSION = '1.301001_098';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 use Test::Stream 1.301001 '-internal';
@@ -9,6 +9,10 @@ use Test::Builder 1.301001;
 use Symbol;
 use Test::Stream::Carp qw/croak/;
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Builder::Tester - *DEPRECATED* test testsuites that have been built with
@@ -465,8 +469,6 @@ me use his testing system to try this module out on.
 
 L<Test::Builder>, L<Test::Builder::Tester::Color>, L<Test::More>.
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 4a1accf..675a86a 100644 (file)
@@ -1,12 +1,15 @@
 package Test::Builder::Tester::Color;
 
 use strict;
-our $VERSION = '1.301001_097';
+our $VERSION = '1.301001_098';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 use Test::Stream 1.301001 '-internal';
 require Test::Builder::Tester;
 
+=pod
+
+=encoding UTF-8
 
 =head1 NAME
 
@@ -54,8 +57,6 @@ L<Test::Builder::Tester>, L<Term::ANSIColor>
 
 __END__
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 232ec99..770984a 100644 (file)
@@ -1,3 +1,7 @@
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::FAQ - Frequently Asked Questions about testing with Perl
@@ -376,8 +380,6 @@ not do any testing.  It simply returns true or false.  Use the following code...
     # Now you can use the testing function.
     print is_deeply( "foo", "bar" ) ? "Yes" : "No";
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index df11bc5..8b812ac 100644 (file)
@@ -4,7 +4,7 @@ use 5.008001;
 use strict;
 use warnings;
 
-our $VERSION = '1.301001_097';
+our $VERSION = '1.301001_098';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 use Test::Stream 1.301001 '-internal';
@@ -393,6 +393,10 @@ sub use_ok($;@) {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::More - The defacto standard in unit testing tools.
@@ -1742,8 +1746,6 @@ L<Bundle::Test> installs a whole bunch of useful test modules.
 
 L<Test::Most> Most commonly needed test functions and features.
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 4ec03fa..0f9ae9a 100644 (file)
@@ -108,6 +108,10 @@ sub format_stack {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::More::DeepCheck - Base class or is_deeply() and mostly_like()
@@ -122,8 +126,6 @@ code shared betweent he 2 tools.
 Most of this was refactored from the original C<is_deeply()> implementation. If
 you find any bugs or incompatabilities please report them.
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index d50e980..5ac69e8 100644 (file)
@@ -217,6 +217,10 @@ sub _check_hash {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::More::DeepCheck::Strict - Where is_deeply() is implemented.
@@ -227,8 +231,6 @@ This is the package where the code for C<is_deeply()> from L<Test::More> lives.
 This code was refactored into this form, but should remain 100% compatible with
 the old implementation. If you find an incompatability please report it.
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index ef3fb45..793b4c0 100644 (file)
@@ -220,6 +220,10 @@ sub _hash_check {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::More::DeepCheck::Tolerant - Under the hood implementation of
@@ -229,8 +233,6 @@ mostly_like()
 
 This is where L<Test::MostlyLike> is implemented.
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 554b3d9..1fea46f 100644 (file)
@@ -17,6 +17,19 @@ sub tmt() { __PACKAGE__ }
 my %CMP_OK_BL    = map { ( $_, 1 ) } ( "=", "+=", ".=", "x=", "^=", "|=", "||=", "&&=", "...");
 my %NUMERIC_CMPS = map { ( $_, 1 ) } ( "<", "<=", ">", ">=", "==", "!=", "<=>" );
 
+sub _cmp_eval {
+    my ($line, $name, $file, $got, $type, $expect) = @_;
+    my $test;
+    # This is so that warnings come out at the caller's level
+    ## no critic (BuiltinFunctions::ProhibitStringyEval)
+    eval qq[
+#line $line "(eval in $name) $file"
+\$test = (\$got $type \$expect);
+1;
+    ] || die $@;
+    return $test;
+}
+
 sub cmp_check {
     my($class, $got, $type, $expect) = @_;
 
@@ -31,13 +44,7 @@ sub cmp_check {
 
     my $test = 0;
     my ($success, $error) = try {
-        # This is so that warnings come out at the caller's level
-        ## no critic (BuiltinFunctions::ProhibitStringyEval)
-        eval qq[
-#line $line "(eval in $name) $file"
-\$test = (\$got $type \$expect);
-1;
-        ] || die $@;
+        $test = _cmp_eval($line, $name, $file, $got, $type, $expect);
     };
 
     my @diag;
@@ -326,6 +333,10 @@ DIAGNOSTIC
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::More::Tools - Generic form of tools from Test::More.
@@ -396,8 +407,6 @@ Regex compare. C<$op> may be C<=~> or C<!~>.
 
 =back
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 76c6c47..8831609 100644 (file)
@@ -36,6 +36,9 @@ WARNING
 1;
 
 __END__
+=pod
+
+=encoding UTF-8
 
 =head1 NAME
 
@@ -189,8 +192,6 @@ Sometimes you want to ignore the methods and get the hash value directly.
 
     mostly_like($got, $exp, "Did not call the fatal method");
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index b3de80e..3ab5693 100644 (file)
@@ -5,10 +5,10 @@ use 5.008001;
 use strict;
 use warnings;
 
-our $VERSION = '1.301001_097';
+our $VERSION = '1.301001_098';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
-use Test::Stream 1.301001_097 '-internal';
+use Test::Stream 1.301001_098 '-internal';
 use Test::Stream::Toolset;
 
 use Test::Stream::Exporter;
@@ -61,6 +61,10 @@ sub ok ($;$) {    ## no critic (Subroutines::ProhibitSubroutinePrototypes)
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Simple - Basic utilities for writing tests.
@@ -234,9 +238,6 @@ programs and things will still work).
 
 Look in L<Test::More>'s SEE ALSO for more testing modules.
 
-
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 799b553..1c05f1d 100644 (file)
@@ -2,7 +2,7 @@ package Test::Stream;
 use strict;
 use warnings;
 
-our $VERSION = '1.301001_097';
+our $VERSION = '1.301001_098';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 use Test::Stream::Context qw/context/;
@@ -404,7 +404,8 @@ sub done_testing {
         return;
     }
 
-    $ctx->plan($num || $plan || $ran) unless $state->[STATE_PLAN];
+    # Use _plan to bypass Test::Builder::plan() monkeypatching
+    $ctx->_plan($num || $plan || $ran) unless $state->[STATE_PLAN];
 
     if ($plan && $plan != $ran) {
         $state->[STATE_PASSING] = 0;
@@ -743,6 +744,10 @@ sub STORABLE_thaw {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream - A modern infrastructure for testing.
@@ -1080,8 +1085,6 @@ restored to the previous state.
 
 =back
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 68b1e55..0253081 100644 (file)
@@ -116,6 +116,10 @@ sub get_tap_outputs {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::API - Single point of access to Test::Stream extendability
@@ -533,10 +537,17 @@ already a tester it will return the existing meta-object.
 
 =item $context = context()
 
+=item $context = context($add_level)
+
 This will get the correct L<Test::Stream::Context> object. This may be one that
 was previously initialized, or it may generate a new one. Read the
 L<Test::Stream::Context> documentation for more info.
 
+Note, C<context()> assumes you are at the lowest level of your tool, and looks
+at the current caller. If you need it to look further you can call it with a
+numeric argument which is added to the level. To clarify, calling C<context()>
+is the same as calling C<context(0)>.
+
 =item $stream = current_stream()
 
 This will return the current L<Test::Stream> Object. L<Test::Stream> objects
@@ -586,8 +597,6 @@ Check if the test state is passing.
 
 =back
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index b67fe7e..84aec12 100644 (file)
@@ -1,3 +1,7 @@
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::Architecture - overview of how the Test-More dist works.
@@ -350,8 +354,6 @@ Test::Stream, and then all events get intercepted by that subtest. When the
 subtest is done, issue another Child event to close it out. Once closed, a
 Subtest event will be generated for you and sent to the stream.
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 1be5569..6ac75de 100644 (file)
@@ -97,6 +97,10 @@ sub to_hash {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::ArrayBase - Base class for classes that use an arrayref instead
@@ -270,8 +274,6 @@ beyond reason. A large part of the slowdown was due to the use of proper
 methods instead of directly accessing elements. We also switched to using a LOT
 more objects that have methods.
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index a283afd..159807c 100644 (file)
@@ -119,6 +119,10 @@ sub add_accessors {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::ArrayBase::Meta - Meta Object for ArrayBase objects.
@@ -181,8 +185,6 @@ C<uc($name)> constant.
 
 =back
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 36a5ee8..6ec6a15 100644 (file)
@@ -15,6 +15,10 @@ Test::Stream::Exporter->cleanup;
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::Carp - Delayed Carp loader.
@@ -41,8 +45,6 @@ See L<Carp> for details on each of these functions.
 
 =back
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index d2aaf10..b4215db 100644 (file)
@@ -462,6 +462,10 @@ sub AUTOLOAD {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::Context - Object to represent a testing context.
@@ -503,6 +507,11 @@ context matters a lot.
 If you want to store a context for later reference use the C<snapshot()> method
 to get a clone of it that is safe to store anywhere.
 
+Note, C<context()> assumes you are at the lowest level of your tool, and looks
+at the current caller. If you need it to look further you can call it with a
+numeric argument which is added to the level. To clarify, calling C<context()>
+is the same as calling C<context(0)>.
+
 =back
 
 =head1 METHODS
@@ -623,8 +632,6 @@ is a reliable way to set a global todo that effects any/all packages.
 
 =back
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index e814205..2080597 100644 (file)
@@ -80,6 +80,10 @@ sub subevents { }
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::Event - Base class for events
@@ -301,8 +305,6 @@ The skip message if the event was generated via skip.
 
 =back
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 4164d55..4b50c63 100644 (file)
@@ -28,6 +28,10 @@ sub extra_details {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::Event::Bail - Bailout!
@@ -81,8 +85,6 @@ Boolean, true if the bailout should be quiet.
 
 =back
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 0e12c0c..365a986 100644 (file)
@@ -13,7 +13,12 @@ use Test::Stream::Carp qw/confess/;
 
 sub init {
     $_[0]->SUPER::init();
-    $_[0]->[MESSAGE] = 'undef' unless defined $_[0]->[MESSAGE];
+    if (defined $_[0]->[MESSAGE]) {
+        $_[0]->[MESSAGE] .= "";
+    }
+    else {
+        $_[0]->[MESSAGE] = 'undef';
+    }
     weaken($_[0]->[LINKED]) if $_[0]->[LINKED];
 }
 
@@ -48,12 +53,14 @@ sub extra_details {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::Event::Diag - Diag event type
 
-=encoding utf8
-
 =head1 DESCRIPTION
 
 Diagnostics messages, typically rendered to STDERR.
index 2f181a9..0617e5f 100644 (file)
@@ -18,6 +18,10 @@ sub extra_details {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::Event::Finish - The finish event type
@@ -26,8 +30,6 @@ Test::Stream::Event::Finish - The finish event type
 
 Sent after testing is finished.
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 263b08c..6d39548 100644 (file)
@@ -11,7 +11,12 @@ use Test::Stream::Carp qw/confess/;
 
 sub init {
     $_[0]->SUPER::init();
-    $_[0]->[MESSAGE] = 'undef' unless defined $_[0]->[MESSAGE];
+    if (defined $_[0]->[MESSAGE]) {
+        $_[0]->[MESSAGE] .= "";
+    }
+    else {
+        $_[0]->[MESSAGE] = 'undef';
+    }
 }
 
 sub to_tap {
@@ -33,12 +38,14 @@ sub extra_details {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::Event::Note - Note event type
 
-=encoding utf8
-
 =head1 DESCRIPTION
 
 Notes, typically rendered to STDOUT.
index 2390638..e4e9c03 100644 (file)
@@ -200,12 +200,14 @@ sub extra_details {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::Event::Ok - Ok event type
 
-=encoding utf8
-
 =head1 DESCRIPTION
 
 Ok events are generated whenever you run a test that produces a result.
index 7467b99..f3712b2 100644 (file)
@@ -65,12 +65,14 @@ sub extra_details {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::Event::Plan - The event of a plan
 
-=encoding utf8
-
 =head1 DESCRIPTION
 
 Plan events are fired off whenever a plan is declared, done testing is called,
index ce6ec32..13ae97e 100644 (file)
@@ -124,6 +124,10 @@ sub extra_details {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::Event::Subtest - Subtest event
@@ -194,8 +198,6 @@ Number of tests that failed inside the subtest.
 
 =back
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 7f5bf5b..791ba14 100644 (file)
@@ -153,6 +153,10 @@ sub be_helpful_magic {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::ExitMagic - Encapsulate the magic exit logic
@@ -165,8 +169,6 @@ It's magic! well kinda..
 
 Don't use this yourself, let L<Test::Stream> handle it.
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index babad93..9832a68 100644 (file)
@@ -19,6 +19,10 @@ sub from_end_block { 1 };
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::ExitMagic::Context - Special context for use in an END block.
@@ -32,8 +36,6 @@ trivial one is used instead.
 B<DO NOT USE THIS>. If you find yourself thinking that you should use this then
 B<STOP!> because you are very likely to be wrong.
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
diff --git a/cpan/Test-Simple/lib/Test/Stream/Explanation.pod b/cpan/Test-Simple/lib/Test/Stream/Explanation.pod
new file mode 100644 (file)
index 0000000..9314bb6
--- /dev/null
@@ -0,0 +1,943 @@
+package Test::Stream::Explanation;
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test::Stream::Explanation - Explanation of all things Test::Stream
+
+=head1 Summary of problems the new internals solve
+
+=over 4
+
+=item Monolithic singleton
+
+=item Subtests are a horrible hack
+
+=item No event monitoring/munging
+
+=item Diags and Oks are not linked
+
+=item $Level is fragile, non-obvious, and actively harmful
+
+=item Depth ($Level) is a bad thing to test against
+
+=item There is no good way to validate testing tools, only mediocre ways
+
+=item Cannot reuse Test::More tools without generating TAP
+
+=item TAP is mandatory
+
+=item Setting the encoding requires major hackery
+
+=item No forking support
+
+=item Shared variable hackery in thread support
+
+=back
+
+=head1 Solutions
+
+=head2 Singleton
+
+The biggest problem with Test::Builder is that it does 2 things at once.  The
+first thing it does is synchronization, which is accomplished by making it a
+singleton. The second thing it does is provide a collection of useful tools and
+shortcuts for generating events. This is an issue because the tools are tied to
+the singleton, Subclassing Test::Builder is not an option, and there are few
+hooks. You essentially have to hack the Test::Builder object, and hope nobody
+else does the same.
+
+Test::Stream now houses synchronization code, all events come to Test::Stream,
+which makes sure the state is updated, and then forwards the events to where
+they need to be, including producing the TAP output. This module synchronizes
+state, threads, processes, and events.
+
+Unlike Test::Builder, Test::Stream is not a true singleton. Test::Stream has a
+singleton stack, and code always uses the instance at the top of the stack.
+This allows you to temporarily push an instance to the top in order to
+intercept events.
+
+Anything not essential to synchronization is kept in other modules. This model
+allows you to subclass tools as you see fit. You can create and destroy
+instances as needed. You can create your own toolboxes without accounting for
+the nature of a singleton.
+
+=head2 Subtests
+
+Do not read the subtest implementation in the legacy Test::Builder code, if
+your eyes bleed that much you won't be able to finish reading this document.
+They first copy the singleton, then reset the originals internals, do their
+thing, then restore the original internals. This is not an attack against the
+people that wrote it; they did the best that could be done with the singleton
+they had to work with. The only way to write a better implementation is to move
+away from the monolithic singleton model.
+
+Subtests are now integrated into the design of Test::Stream. Test::Stream
+maintains a state stack. When a subtest starts it pushes a new state to the top
+of the stack, when it is finished it pops the state. Designing the internals
+with subtests in mind from the beginning significantly reduces the hackery
+necessary to make them work.
+
+Note: There is still some other stuff that makes subtests non-trivial, such as
+TODO inheritance. But most of the problems related to subtests are solved in
+much saner ways now.
+
+=head2 Event Handling
+
+In Test::Builder, ok, diag, note, etc. were all simply methods. You call the
+method you get some TAP. There was no easy way to hook into the system and
+modify an event. There is also no easy way to listen for events, or maintain a
+complete list, short of parsing TAP.
+
+All "events" are now proper objects. Tools generate events such as 'ok' and
+'diag', then send them to the Test::Stream instance at the top of the stack.
+Test::Stream provides hooks for you to modify events before the test state is
+updated, as well as hooks for reading/displaying/storing events after the state
+is updated. There is also a hook for the end of the test run (done_testing, or
+test ended).
+
+This is what Test::Stream is named Test::Stream, all events stream from the
+tools into the Test::Stream funnel, which then gets them where they need to go.
+Previously these kinds of actions required monkeypatching.
+
+=head2 Linking ok and diag
+
+Tools would typically call C<< $TB->ok >>, then call C<< $TB->diag >>. Both
+would produce output. There is no easy way to associate the diag and the ok.
+Often the messages can appear out of order, or far apart. Usually a human can
+figure out what goes where, but connecting them programmatically is very hard
+to do after the fact.
+
+Diags and oks can still exist as independent events, but by default all Test::More
+tools link the 'ok' and 'diag' events they produce. This allows code to process
+the ok and attached diagnostics as one unit. This prevents guess work
+previously required to accomplish this. Any downstream tool can also link 'ok'
+and 'diag' objects, but they are not required to do so for compatibility
+reasons.
+
+NOTE: Once the events are turned into TAP they still have the same issue as
+before, TAP itself does not provide any way of linking the diag and the ok.
+
+=head2 $Level
+
+=head3 Whats the problem with $Level?
+
+    local $Test::Builder::Level = $Test::Builder::Level + $x;
+
+At a glance the code above seems reasonable... But there are caveats:
+
+=over 4
+
+=item What if you have multiple Test::Builder instances?
+
+Don't
+
+=item What about subtests?
+
+$Level is zeroed out and restored later.
+
+=item What if my unit tests validate the value of $Level, but Test::Builder adds another layer?
+
+Test::Builder can never break large subs into small ones for this reason. Or
+better yet, don't use Test::Tester since you have to jump through hoops for it
+to skip testing level.
+
+=item This is a non-obvious interface for new perl developers.
+
+This code requires you to know about local, package variables, and scope. In
+some cases you also need to do math, something better left to the computer.
+
+=back
+
+=head3 How is it solved?
+
+L<Test::Stream::Context>
+
+Instead of bumping $Level, you ask for a $context instance. You normally ask
+for the $context at the shallowest level of your tools code. The context
+figures out what file+line errors should be reported to, as well as recording
+other critical per-test state such as TODO.
+
+Once you obtain a context, anything else that asks for the context will find
+the one you already have. Once nothing is holding a reference to the context, a
+new one can be generated. Essentially this lets the first tool in the stack
+lock in a context, and all deeper tools find it. When your tool is finished the
+Context is destroyed allowing the next tool to repeat the process. This lets
+you stack tools arbitrarily without concerning yourself with depth value.
+
+Note: You can pass a level/depth value when obtaining a context if for some
+reason you cannot obtain it at the shallowest level.
+
+Note: Context takes the value of $Level into account for compatibility reasons.
+Backcompat like this adds an unfortunate level of complexity to Context.
+
+=head2 Validating test tools
+
+Test::Builder::Tester simply captures all output from Test::Builder. Your job
+is to compare the strings it intercepts with the strings you expect. There are
+a few helpers to reduce the tedious nature of these string compares, but
+ultimately they are not very flexible. Changing the indentation of a comment
+intended for human consumption can break any and all modules that use
+Test::Builder::Tester.
+
+Test::Tester is a huge improvement, but lacks support for numerous features.
+Test::Tester also works (worked) by replacing the singleton and monkeypatching
+a lot of methods. Testing tools that also need to monkeypatch is not possible.
+In addition it made too many assumptions about what you wanted to do with the
+results it found.
+
+The solution here is Test::Stream::Tester. Test::Stream::Tester leverages the
+stack nature of Test::Stream to intercept events generated over a specific
+scope. These event objects can then be verified using well known tools from
+Test::More, or the tools Test::Stream::Tester itself provides to make
+validating events super easy.
+
+Another validation problem solved here is that you can filter, or be selective
+about what events you care about. This allows you to test only the parts that
+your module generates. This is helpful in ensuring changes upstream do not
+break your tests unless they actually break your modules behavior.
+
+=head2 Resusable Test::More tools.
+
+Often people would write test subs that make use of tools such as C<like>,
+C<is_deeply>, and others in a sequence to validate a single result. This
+produces an 'ok' and/or diag for each tool used. In many cases people would
+prefer to produce only a single final event, and a combined diagnostic message.
+This is now possible.
+
+L<Test::More::Tools> and L<Test::More::DeepCheck> solve this problem. Nearly
+all the internals of Test::More have been moved into these 2 modules. The subs
+in these modules return a boolean and diagnostics messages, but do not fire off
+events. These are then wrapped in Test::More to actually produce the events.
+Using these tools you can create composite tools that produce a single event.
+
+L<Test::More::DeepCheck> is the base for is_deeply. This is useful because it
+gives you a chance to create tools like is_deeply with similar diagnostics (for
+better or worse). An example of this is L<Test::MostlyLike>.
+
+=head2 Mandatory TAP.
+
+99% of the time you want TAP. With the old internals turning TAP off was hard,
+and usually resulted in a useless Test::Builder.
+
+There is now a single switch you can use to turn TAP on and off. The listener
+feature of Test::Stream gives you the ability to produce whatever output you
+desire for any event that comes along. All the test state is still kept
+properly.
+
+=head2 Setting the encoding
+
+Legacy Test::Builder would clone the standard filehandles, reset them, and
+modify them in various ways as soon as it loaded. Changes made to STDERR and
+STDOUT after this action would have no effect on Test::Builder. You could
+modify/set/reset Test::Builders filehandles, but this was not obvious. Setting
+the encoding of the handles in Test::Builder could also be dangerous as other
+modules might have changes the handles.
+
+For compatibility reasons Test::Stream still has to do all the filehandle
+manipulation Test::Builder did. However it encapsulates it better and makes it
+significantly easier to modify. Every class that produces events gets a
+meta-object. The meta-object has an option for encoding. You can ask for a
+specific encoding when you load Test::More, or you can change it at any point
+in the test.
+
+Encodings are managed by <Test::Stream::IOSets>. Each Test::Stream instance has
+an instance of L<Test::Stream::IOSets>. The default encoding is called 'legacy'
+and it does what Test::Builder has always done. You can ask for a specific
+encoding, such as utf8, and IOSets will create a new clone of STDERR and STDOUT
+and handle setting the encoding for you. IOSets can manage several encodings
+all at once, so you can switch as necessary in your tests, or have multiple
+tests under the same process that use different encodings.
+
+=head2 Threads and Forking
+
+Legacy Test::Builder does not support producing results from multiple threads
+without serious hacking or questionable third party modules (Of which I own
+one, and help maintain another).
+
+Legacy Test::Builder does support threading, but only if threads are loaded
+first. It uses shared variables and locking to maintain the test state and
+ensure test numbers are consistent.
+
+Test::Stream has forking support baked in (though you have to ask for it).
+Thread support has been changed to use the same mechanism as forking support.
+There are no shared variables. Test::Stream implements checks to ensure that
+all events generated get funneled to the parent process/thread where they can
+then be properly processed.
+
+=head1 Module justifications
+
+All code is a liability. Any module which is included in the dist requires
+some justification. If there is no justification for including the module the
+sensible thing to do would be to purge it.
+
+=head2 Test::Builder
+
+Required for legacy support and backwards compatibility.
+
+=head2 Test::Builder::Module
+
+Required for legacy support and backwards compatibility. In the past people
+were urged to use this as a base class for all testing tools. To my knowledge
+adoption was very low.
+
+=head2 Test::Builder::Tester
+
+Has been included for many years. Tightly coupled with the rest of the testing
+tools. Wide adoption.
+
+=head3 Additional components
+
+=over 4
+
+=item Test::Builder::Tester::Color
+
+=back
+
+=head2 Test::CanFork
+
+Encapsulation of some logic that used to be duplicated in several Test-Simple
+tests. Now usable by anyone.
+
+This module lets you make a test conditional upon support for forking.
+
+=head2 Test::CanThread
+
+Encapsulation of some logic that used to be duplicated in several Test-Simple
+tests. Now usable by anyone.
+
+This module lets you make a test conditional upon support for threads.
+
+=head2 Test::More
+
+This requires no justification.
+
+=head3 Additional components
+
+=over 4
+
+=item Test::More::DeepCheck
+
+This is a base class for tools that resemble is_deeply. A lot of this is
+valuable logic that is now reusable.
+
+=item Test::More::DeepCheck::Strict
+
+This is the subclass that implements is_Deeply itself. I will not that this was
+a refactor, not a re-implementation, there should be zero net-change to how
+is_deeply behaves.
+
+=item Test::More::Tools
+
+This is where the guts of Test::More tools live. This is here so that they can
+be reused in composite tests without any hacking. This was a refactor, not
+redesign from the ground up.
+
+=back
+
+=head2 Test::MostlyLike
+
+This implements a new tool similar to is_deeply called mostly_like. This is
+included in the dist because I wrote it specifically to test the Test-Simple
+internals. It is also useful enough to publish publicly.
+
+=head3 Additional components
+
+=over 4
+
+=item Test::More::DeepCheck::Tolerant
+
+This is the subclass that implements mostly_like.
+
+=back
+
+=head2 Test::Simple
+
+This requires no justification. This is also the module the dist is named after.
+
+=head2 Test::Stream
+
+This is the new crux of Test-Simple.
+
+Test::Stream is the hub to which all events flow. It is also responsible for
+ensuring all events get to the correct place. This is where all synchronization
+happens.
+
+=head3 Additional components
+
+=over 4
+
+=item Test::Stream::API
+
+This is sugar-coating. This is the go-to place when people wish to know the
+easiest way to accomplish something fancy.
+
+=item Test::Stream::Meta
+
+Metadata assigned to test files/packages
+
+=item Test::Stream::PackageUtil
+
+Utilities for inspecting package internals
+
+=item Test::Stream::Subtest
+
+Encapsulation of subtest logic
+
+=item Test::Stream::Threads
+
+Encapsulation of threading tools
+
+=item Test::Stream::Util
+
+Misc Utilities used all over Test-Simple
+
+=back
+
+=head2 Test::Stream::ArrayBase
+
+All objects in Test::Stream use this to generate methods and constructors. This
+is done here, and the way it is, for performance. Before implementing this ans
+switching to it, performance was bad enough to keep the new internals out of
+core.
+
+=head3 Additional components
+
+=over 4
+
+=item Test::Stream::ArrayBase::Meta
+
+=back
+
+=head2 Test::Stream::Block
+
+Subtests are typically codeblocks. This is an object to represent them. There
+is some development in this module that will provide profoundly useful
+debugging for subtests, though it has not yet been enabled. This module is in
+the dist mainly to give it a shakedown and prove it before turning on the extra
+debugging.
+
+=head2 Test::Stream::Carp
+
+We cannot load Carp until we actually need it, if we do it can cause unexpected
+test passes downstream. This is one of few core modules I am willing to do this
+for, mainly because legacy had the same policy.
+
+This module provides the same tools as Carp, they simple load Carp and call the
+correct sub from there.
+
+=head2 Test::Stream::Context
+
+This module is responsible for gathering details about events that are to be
+generated. It is responsible for figuring out where errors should be reported,
+if we are in a TODO, and various other meta-data.
+
+This module is an essential module.
+
+It also handles backwards compatibility with $Level, $TODO, and
+C<< Test::Builder->todo_start >>.
+
+=head2 Test::Stream::Event
+
+All 'events' are now proper objects, this is the base class for all events.
+
+=head3 Additional components
+
+=over 4
+
+=item Test::Stream::Event::Bail
+
+Event for bailing out.
+
+=item Test::Stream::Event::Diag
+
+Event for diagnostics
+
+=item Test::Stream::Event::Finish
+
+Event for the end of the test.
+
+=item Test::Stream::Event::Note
+
+Event for notes.
+
+=item Test::Stream::Event::Ok
+
+The 'ok' event is the most well known. This is an essential event.
+
+=item Test::Stream::Event::Plan
+
+This event is triggered whenever a plan is declared.
+
+=item Test::Stream::Event::Subtest
+
+Subtests are their own event, it is a subclass of the
+L<Test::Stream::Event::Ok> event.
+
+=back
+
+=head2 Test::Stream::ExitMagic
+
+This is where the magic that happens when a test process exists is
+encapsulated. Some of this is pretty grody or questionable, nearly all of it is
+here for legacy reasons.
+
+=head3 Additional components
+
+=over 4
+
+=item Test::Stream::ExitMagic::Context
+
+Special Context object to use from ExitMagic. This is because a lot of Context
+logic is a bad idea when run from an END block.
+
+=back
+
+=head2 Test::Stream::Exporter
+
+Test-Simple has to do a lot of exporting. Some of the exporting is not easy to
+achieve using L<Exporter>. I can't use an export tool from cpan, so I had to
+implement the bare minimum I needed here.
+
+=head3 Additional components
+
+=over 4
+
+=item Test::Stream::Exporter::Meta
+
+=back
+
+=head2 Test::Stream::ForceExit
+
+This module is used to ensure that code exits by the end of a scope. This is
+mainly for cases where you fork down stack from an eval and your code throws
+and exception before it can exit.
+
+(A quick grep of the code tells me this is not in use anymore/yet. It can
+probably be purged)
+
+=head2 Test::Stream::IOSets
+
+This is where filehandles and encodings are managed. This is here both to
+implement legacy filehandle support, and to enable support for encodings.
+
+=head2 Test::Stream::Tester
+
+This module is intended to be the new and proper way to validate testing tools.
+It supports all features of Test::Stream, and provides tools and helpers that
+make the job easier.
+
+=head3 Additional components
+
+=over 4
+
+=item Test::Stream::Tester::Checks
+
+=item Test::Stream::Tester::Checks::Event
+
+=item Test::Stream::Tester::Events
+
+=item Test::Stream::Tester::Events::Event
+
+=item Test::Stream::Tester::Grab
+
+=back
+
+=head2 Test::Stream::Toolset
+
+This module provides the minimum set of tools most test tools need to work.
+
+=head2 Test::Tester
+
+This is an important part of the ecosystem. It makes no sense to ship this
+independently. Changes to Test-Simple can break this in any number of ways,
+integration is the only sane option.
+
+=head3 Additional components
+
+Most of these remain for legacy support.
+
+=over 4
+
+=item Test::Tester::Capture
+
+=item Test::Tester::CaptureRunner
+
+=item Test::Tester::Delegate
+
+=back
+
+=head2 Test::use::ok
+
+This module implements the sane companion to C<use_ok> which is C<use ok>.
+There has been a desire to combine this into Test-Simple for years, I finally
+did it.
+
+=head3 Additional components
+
+=over 4
+
+=item ok
+
+This is where the actual implementation lives.
+
+=back
+
+=head1 Compatability Shims
+
+Some modules need to jump through extra hoops in order to support legacy code.
+This section describes these instances.
+
+=head2 Test::Builder
+
+Nearly everything in this module is here purely for legacy and compatibility.
+But there are some extra-notable items:
+
+=over 4
+
+=item $_ORIG_Test
+
+=item %ORIG
+
+=item %WARNED
+
+These 3 variables are used to track and warn about changes to the singleton or
+method monkeypatching that could cause problems.
+
+=item ctx()
+
+A special context method that does extra C<$Level> accounting.
+
+=item %TB15_METHODS
+
+=item AUTOLOAD
+
+Used to warn people when they appear to be using Test::Builder 1.5 methods that
+never actually made it into production anywhere.
+
+=item underscore methods
+
+There are several private methods (underscore prefix) that were never intended
+for external use. Despite underscores, warnings, and other such things people
+used them externally anyway. Most were purged, but these were left because an
+unbelievable amount of downstream things appear to depend on them.
+
+=back
+
+=head2 Test::Stream
+
+The state array has an extra field identified by the constant C<STATE_LEGACY>.
+This is an array of all events of some types. Test::Builder used to maintain an
+array of hashes representing events for inspection later. Code which relied on
+this capability now depends on this and some translation logic in
+Test::Builder.
+
+Unlike in old Test::Builder this feature can be turned off for performance and
+memory improvement.
+
+=head2 Test::Stream::Util
+
+=over 4
+
+=item is_dualvar
+
+Test::More has its own is_dualvar. This differs from Scalar::Utils dualvar
+checker, enough to break cmp_ok. Because of the breakage I have not switched.
+
+=item is_regex
+
+Test::More tools check if things are regexes in many places. The way it does
+this, and the things it considers to be regexes are suprising. Much of this is
+due to VERY old code that might predate quick regexes. Switching away from this
+would break a lot of things.
+
+=item unoverload
+
+Test::More has its own ideas of unoverloading things and when it is necessary.
+Not safe to migrate away from this.
+
+=back
+
+=head2 Test::Stream::Context
+
+=over 4
+
+=item TODO
+
+Has to look for todo in 4 places. $TODO in the test package, $TODO in
+Test::More, the todo value of the Test::Builder singleton, and the todo in test
+package meta-data. The main issue here is no good TODO system has ever been
+found, so we use and support 4 mediocre or even bad ones.
+
+=item $Level
+
+Test::Builder has historically been very forgiving and clever when it comes to
+$Level. Context takes $Level into account when finding the proper file + line
+number for reporting errors. If $Level is wrong it attempts to be as forgiving
+as Test::Builder was. Requiring $Level to be correct breaks an unfortunate
+number of downstream tools, so we have to stay forgiving for now.
+
+=item Test::Builder monkeypatching
+
+When Test::Builder gets monkeypatched, we need to detect it here and try to
+incorporate the monkeypatching. This is a horrible hack that works surprisingly
+well.
+
+=item hide_todo + restore_todo
+
+Subtests need to hide the TODO state, they have always done this historically.
+These methods accomplish this... for all 4 ways you can set TODO.
+
+=back
+
+=head2 Test::Stream::ExitMagic
+
+Test::Builder does a lot of stuff at exit. I would argue that a lot of this
+should be harness logic. However compatibility and people relying on it means
+we cannot just remove it all at once.
+
+This magic is called though either an END block, or done_testing. Sometimes
+both.
+
+=head2 Test::Stream::IOSets
+
+Test::Builder clones STDERR and STDOUT and resets them to what it thinks they
+should be. This encapsulates that logic and calls it 'legacy'. It then provides
+mechanisms for actually supporting custom filehandles and encodings.
+
+=head2 Test::Tester
+
+This makes use of the STATE_LEGACY key mentioned in the Test::Stream section.
+This also needs to do some gymnastics and monkeypatching for $Level support.
+
+=head1 Design Decisions
+
+=head2 Test::Builder
+
+Decided to turn this into a legacy wrapper. It is no longer essential for
+anything new.
+
+=head2 Test::More
+
+Decided to refactor the logic out into reusable parts. No net change except for
+some bug fixes.
+
+At one point some redesign was started, but it was abandoned, this mainly had
+to do with use_ok and require_ok, which are horrible.
+
+=head3 Additional components
+
+Most logic was moved into these 3 modules
+
+=over 4
+
+=item Test::More::DeepCheck
+
+is_deeply stack and diagnostics
+
+=item Test::More::DeepCheck::Strict
+
+is_deeply inner check functions
+
+=item Test::More::Tools
+
+Everything else.
+
+=back
+
+=head2 Test::Stream
+
+=over 4
+
+=item Instead of a singleton, we have a stack of singletons
+
+We can't avoid using a singleton-like pattern when we are dealing with a shared
+state. However there are times where we need to work around the singleton
+model. The main example is writing tests for testing tools. The singleton stack
+allows us to put new instances in place that will steal focus.
+
+Anything that produces events should send them to the topmost instance of
+Test::Stream. Using tools like Test::Stream::Context and Test::Builder handle
+this for you.
+
+In the old system you were expected to cache a copy of the Test::Builder
+singleton, this caused problems when code needed to replace the singleton.
+Subtests had to implement and ugly hack around this problem. In the new system
+test state is also a stack, subtests work by pushing a new state, they do not
+need to replace the entire singleton.
+
+=item Only state and synchronization is handled here
+
+Since this module is somewhat singleton in nature, we keep it as small as
+possible. Anything that is put into a singleton-like object is hard to expand.
+If it is not related to synchronization or common state, I tried to put it
+somewhere else.
+
+=item Events are proper objects
+
+In the old design events were just methods that produced TAP.  Now they are
+proper objects that can be constructed, altered, passed around, etc.
+
+=item This module is a hub through which events stream
+
+Events are built by testing tools, once ready the events are given to
+Test::Stream to ensure they get to the right place.
+
+=back
+
+=head2 Test::Stream::Meta
+
+Attaching meta-data to tests was a design decision adopted for settings that
+people want, but might be different from test file to test file. Being able to
+use different settings in different files is necessary for advanced testing
+tools that might load multiple files at a time. Examples include Fennec,
+Test::Class, etc.
+
+Currently TODO and tap_encoding are the only significant settings here.
+
+=head2 Test::Stream::ArrayBase
+
+This is the OO implementation used all over Test::Stream. The initial upgrade
+to OO from a single object where hash elements were directly accessed resulted
+in a significant slowdown.
+
+To avoid the slowdown a couple design decision were made:
+
+=over 4
+
+=item Objects would be array based
+
+=item Constants would be used to access elements
+
+=item Single inheritance only for simplicity
+
+=item Seperate reader+writer methods
+
+=item generate methods for each attribute that use $_[xxx] and constants
+
+=back
+
+Together these designs resulted in huge performance gains.
+
+=head2 Test::Stream::Context
+
+The context object is created when a testing tool is called. Any testing tools
+called within will find the existing context. This context stores important
+things like test file, line number, etc.
+
+This is implemented as a weak singleton. When a tool gets a context is is
+crated. When a tool returns the context is garbage collected and destroyed.
+This allows the next tool to obtain a new context.
+
+=head2 Test::Stream::Event::Subtest
+
+The subtest event is a subclass of the ok event. This is done because a subtest
+ultimately boils down to an 'ok'.
+
+=head2 Test::Stream::Exporter
+
+Test::Stream has to do some fancy exporting, specially due to
+Test::Stream::ArrayBase and the attribute constants. This exporter is a very
+light implementation modeled on Exporter::Declare. It uses a meta-object to
+track exports.
+
+=head1 SOURCE
+
+The source code repository for Test::More can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINER
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+The following people have all contributed to the Test-More dist (sorted using
+VIM's sort function).
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
+
+=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
+
+=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
+
+=item 唐鳳
+
+=back
+
+=head1 COPYRIGHT
+
+There has been a lot of code migration between modules,
+here are all the original copyrights together:
+
+=over 4
+
+=item Test::Stream
+
+=item Test::Stream::Tester
+
+Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://www.perl.com/perl/misc/Artistic.html>
+
+=item Test::Simple
+
+=item Test::More
+
+=item Test::Builder
+
+Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
+inspiration from Joshua Pritikin's Test module and lots of help from Barrie
+Slaymaker, Tony Bowden, blackstar.co.uk, chromatic, Fergal Daly and the perl-qa
+gang.
+
+Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
+E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
+
+Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://www.perl.com/perl/misc/Artistic.html>
+
+=item Test::use::ok
+
+To the extent possible under law, 唐鳳 has waived all copyright and related
+or neighboring rights to L<Test-use-ok>.
+
+This work is published from Taiwan.
+
+L<http://creativecommons.org/publicdomain/zero/1.0>
+
+=item Test::Tester
+
+This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
+are based on other people's work.
+
+Under the same license as Perl itself
+
+See http://www.perl.com/perl/misc/Artistic.html
+
+=item Test::Builder::Tester
+
+Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
+
+This program is free software; you can redistribute it
+and/or modify it under the same terms as Perl itself.
+
+=back
index f02befd..237560a 100644 (file)
@@ -132,6 +132,10 @@ sub default_exports {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::Exporter - Declarative exporter for Test::Stream and friends.
@@ -225,8 +229,6 @@ if the package has imported it.
 
 =head1 HOOKS
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 735a9af..0bdf935 100644 (file)
@@ -126,6 +126,10 @@ sub get {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::Exporter::Meta - Meta object for exporters.
@@ -134,8 +138,6 @@ Test::Stream::Exporter::Meta - Meta object for exporters.
 
 L<Test::Stream::Exporter> uses this package to manage exports.
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index e32edfb..32efb58 100644 (file)
@@ -32,7 +32,7 @@ __END__
 
 =head1 NAME
 
-Test::ForceExit - Ensure C<exit()> is called bvy the end of a scope, force the issue.
+Test::ForceExit - Ensure C<exit()> is called by the end of a scope, force the issue.
 
 =head1 DESCRIPTION
 
index e2352ef..c76b675 100644 (file)
@@ -108,6 +108,10 @@ sub _apply_layers {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::IOSets - Manage sets of IO Handles in specific encodings.
@@ -142,8 +146,6 @@ encoding.
 
 =back
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 9f7b6d3..68e6641 100644 (file)
@@ -38,6 +38,10 @@ sub init_tester {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::Meta - Meta object for unit test packages.
@@ -101,8 +105,6 @@ These are various attributes stored on the meta object.
 
 =back
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index f2a2a8c..03a8248 100644 (file)
@@ -73,6 +73,10 @@ sub package_purge_sym {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::PackageUtil - Utils for manipulating package symbol tables.
@@ -107,8 +111,6 @@ name of the symbol to remove.
 
 =back
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 06016d2..97e274e 100644 (file)
@@ -105,6 +105,10 @@ This is almost certainly not what you wanted. Did you fork and forget to exit?
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 Name
 
 Test::Stream::Subtest - Encapsulate subtest start, run, and finish.
@@ -115,8 +119,6 @@ Test::Stream::Subtest - Encapsulate subtest start, run, and finish.
 
     subtest $name => sub { ... };
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 91e9781..111dc73 100644 (file)
@@ -171,6 +171,10 @@ sub events_are {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::Tester - Tools for validating the events produced by your testing
@@ -624,8 +628,6 @@ The original test tester, checks TAP output as giant strings.
 
 =back
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 9321fe8..d032807 100644 (file)
@@ -285,6 +285,10 @@ sub filter_types {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::Tester::Checks - Representation of a L<Test::Stream::Tester>
@@ -300,8 +304,6 @@ B<Note:> The API for this object is not published and is subject to change. No b
 compatability can be guarenteed if you use this object directly. Please only
 use this object in the published way specified in L<Test::Stream::Tester>.
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 84517aa..649b3e7 100644 (file)
@@ -82,6 +82,11 @@ sub validate_check {
 }
 
 1;
+__END__
+
+=pod
+
+=encoding UTF-8
 
 =head1 NAME
 
@@ -93,8 +98,6 @@ specification.
 Used internally by L<Test::Stream::Tester>. Please do not use directly. No
 backwords compatability will be provided if the API for this module changes.
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 36ee93e..529fdee 100644 (file)
@@ -32,6 +32,11 @@ sub clone {
 }
 
 1;
+__END__
+
+=pod
+
+=encoding UTF-8
 
 =head1 NAME
 
@@ -65,8 +70,6 @@ Clone the events list object in its current state.
 
 =back
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index f4265ad..0c3e206 100644 (file)
@@ -54,6 +54,11 @@ sub debug {
 }
 
 1;
+__END__
+
+=pod
+
+=encoding UTF-8
 
 =head1 NAME
 
@@ -98,8 +103,6 @@ which it was generated.
 
 =back
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index bf2ab5f..8022011 100644 (file)
@@ -57,6 +57,8 @@ __END__
 
 =pod
 
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::Tester::Grab - Object used to temporarily steal all events.
@@ -114,8 +116,6 @@ Get an arrayref of all the events, then destroy the grab object.
 
 =back
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index e07c9ce..2a90c6b 100644 (file)
@@ -28,6 +28,10 @@ Test::Stream::Exporter->cleanup;
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::Threads - Tools for using threads with Test::Stream.
@@ -62,8 +66,6 @@ otherwise it returns 0.
 
 =back
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 1a2ad03..c13086a 100644 (file)
@@ -61,6 +61,11 @@ Test::Stream::Exporter->cleanup();
 
 
 1;
+__END__
+
+=pod
+
+=encoding UTF-8
 
 =head1 NAME
 
@@ -315,8 +320,6 @@ complete.
 See L<Test::Stream::Tester>. This library gives you all the tools you need to
 test your testing tools.
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 60325a3..79b8087 100644 (file)
@@ -165,6 +165,7 @@ sub is_dualvar($) {
 
     # Objects are not dualvars.
     return 0 if ref $val;
+    return 0 unless defined $val;
 
     no warnings 'numeric';
     my $numval = $val + 0;
@@ -215,6 +216,10 @@ sub translate_filename {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Stream::Util - Tools used by Test::Stream and friends.
@@ -276,8 +281,6 @@ specified, encoding.
 
 =back
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 22a8c96..5ac4b58 100644 (file)
@@ -16,7 +16,7 @@ require Exporter;
 
 use vars qw( @ISA @EXPORT $VERSION );
 
-our $VERSION = '1.301001_097';
+our $VERSION = '1.301001_098';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 @EXPORT  = qw( run_tests check_tests check_test cmp_results show_space );
@@ -320,6 +320,10 @@ sub _export_to_level {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Tester - *DEPRECATED* Ease testing test modules built with Test::Builder
@@ -669,8 +673,6 @@ captures the strings output by Test::Builder. This means you cannot get
 separate access to the individual pieces of information and you must predict
 B<exactly> what your test will output.
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index d63fc8d..0fd9f90 100644 (file)
@@ -50,6 +50,10 @@ sub details {
 
 __END__
 
+=pod
+
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Tester::Capture - Capture module for TesT::Tester
@@ -58,8 +62,6 @@ Test::Tester::Capture - Capture module for TesT::Tester
 
 Legacy support for Test::Tester.
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 45713fb..9f367c0 100644 (file)
@@ -1,5 +1,7 @@
 =pod
 
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Tutorial::WritingTests - A Complete Introduction to writing tests
@@ -97,8 +99,6 @@ L<Test::More>
 
 See L<Test::Tutorial::WritingTools>
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 26f4d37..97c14d1 100644 (file)
@@ -1,5 +1,7 @@
 =pod
 
+=encoding UTF-8
+
 =head1 NAME
 
 Test::Tutorial::WritingTools - How to write testing tools.
@@ -105,6 +107,11 @@ sequence will get independant context objects. What this means is that you
 should NEVER store a context object in a package variable or object attribute.
 You should also never assign it to a variable in a higher scope.
 
+C<context()> assumes you are at the lowest level of your tool, and looks at the
+current caller. If you need it to look further you can call it with a numeric
+argument which is added to the level. To clarify, calling C<context()> is the
+same as calling C<context(0)>.
+
 =head1 Nesting calls to other tools
 
     use Test::More;
@@ -194,8 +201,6 @@ deprecated. They were once the way everyone tested their testers, but they do
 not allow you to test all events, and they are very fragile when upstream libs
 change.
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index dabdd13..c9e19ed 100644 (file)
@@ -3,7 +3,7 @@ use strict;
 use warnings;
 use 5.005;
 
-our $VERSION = '1.301001_097';
+our $VERSION = '1.301001_098';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 use Test::Stream 1.301001 '-internal';
@@ -11,7 +11,9 @@ use Test::Stream 1.301001 '-internal';
 1;
 __END__
 
-=encoding utf8
+=pod
+
+=encoding UTF-8
 
 =head1 NAME
 
@@ -49,8 +51,6 @@ makes it clear that this is a single compile-time action.
 
 L<Test::More>
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 94e6240..653eb49 100644 (file)
@@ -6,7 +6,7 @@ use Test::Stream 1.301001 '-internal';
 use Test::More 1.301001 ();
 use Test::Stream::Carp qw/croak/;
 
-our $VERSION = '1.301001_097';
+our $VERSION = '1.301001_098';
 $VERSION = eval $VERSION;    ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 sub import {
@@ -25,7 +25,9 @@ sub import {
 
 __END__
 
-=encoding utf8
+=pod
+
+=encoding UTF-8
 
 =head1 NAME
 
@@ -42,8 +44,6 @@ and they will be executed at C<BEGIN> time.
 
 Please see L<Test::use::ok> for the full description.
 
-=encoding utf8
-
 =head1 SOURCE
 
 The source code repository for Test::More can be found at
index 2a62f68..e89f02c 100644 (file)
@@ -13,6 +13,7 @@ my $orig = Test::Builder->can('diag');
     use Test::More;
     use Test::Stream;
     use Test::MostlyLike;
+    use Test::Stream::Tester qw/intercept/;
 
     no warnings 'redefine';
     local *Test::Builder::diag = sub {
@@ -29,8 +30,10 @@ my $orig = Test::Builder->can('diag');
     my @warnings;
     {
         local $SIG{__WARN__} = sub { push @warnings => @_ };
-        diag('first');
-        diag('seconds');
+        intercept {
+            diag('first');
+            diag('seconds');
+        };
     }
     mostly_like(
         \@warnings,
@@ -47,6 +50,7 @@ my $orig = Test::Builder->can('diag');
     use Test::More;
     use Test::Stream;
     use Test::MostlyLike;
+    use Test::Stream::Tester qw/intercept/;
 
     no warnings 'redefine';
     local *Test::Builder::diag = sub {
@@ -63,8 +67,10 @@ my $orig = Test::Builder->can('diag');
     my @warnings;
     {
         local $SIG{__WARN__} = sub { push @warnings => @_ };
-        diag('first');
-        diag('seconds');
+        intercept {
+            diag('first');
+            diag('seconds');
+        };
     }
     mostly_like(
         \@warnings,
@@ -79,6 +85,7 @@ my $orig = Test::Builder->can('diag');
 {
     package MyLegacyTester;
     use Test::More;
+    use Test::Stream::Tester qw/intercept/;
 
     no warnings 'redefine';
     local *Test::Builder::diag = sub {
@@ -90,8 +97,10 @@ my $orig = Test::Builder->can('diag');
     my @warnings;
     {
         local $SIG{__WARN__} = sub { push @warnings => @_ };
-        diag('first');
-        diag('seconds');
+        intercept {
+            diag('first');
+            diag('seconds');
+        };
     }
     is(@warnings, 0, "no warnings for a legacy tester");
 }
index bec61ca..236a083 100644 (file)
@@ -4,7 +4,7 @@ use B;
 
 use Test::Stream;
 use Test::MostlyLike;
-use Test::More tests => 6;
+use Test::More tests => 8;
 use Test::Builder; # Not loaded by default in modern mode
 my $orig = Test::Builder->can('plan');
 
@@ -84,3 +84,32 @@ mostly_like(
     "Got the warning once"
 );
 
+
+
+no warnings 'redefine';
+*Test::Builder::plan = sub { };
+use warnings;
+my $ok;
+events_are(
+    intercept {
+        $ok = eval {
+            plan(tests => 1);
+            plan(tests => 2);
+            ok(1);
+            ok(1);
+            ok(1);
+            done_testing;
+            1;
+        };
+    },
+    check {
+        event ok => { bool => 1 };
+        event ok => { bool => 1 };
+        event ok => { bool => 1 };
+        event plan => { max => 3 };
+        directive 'end';
+    },
+    "Make sure plan monkeypatching does not effect done_testing"
+);
+
+ok($ok, "Did not die");
diff --git a/cpan/Test-Simple/t/Behavior/cmp_ok_undef.t b/cpan/Test-Simple/t/Behavior/cmp_ok_undef.t
new file mode 100644 (file)
index 0000000..1e317c5
--- /dev/null
@@ -0,0 +1,19 @@
+use Test::More;
+use strict;
+use warnings;
+
+use Test::Stream::Tester;
+
+my @warnings;
+local $SIG{__WARN__} = sub { push @warnings => @_ };
+my @events = intercept { cmp_ok( undef, '==', 6 ) };
+
+is(@warnings, 1, "1 warning");
+
+like(
+    $warnings[0],
+    qr/Use of uninitialized value .* at \(eval in cmp_ok\)/,
+    "Got the expected warning"
+);
+
+done_testing;
diff --git a/cpan/Test-Simple/t/Behavior/event_clone_args.t b/cpan/Test-Simple/t/Behavior/event_clone_args.t
new file mode 100644 (file)
index 0000000..7d4824d
--- /dev/null
@@ -0,0 +1,22 @@
+use Test::More;
+use strict;
+use warnings;
+
+use B;
+use Test::Stream::Tester qw/intercept/;
+
+my @events;
+
+my $x1 = \(my $y1);
+push @events => intercept { note $x1 };
+is(B::svref_2object($x1)->REFCNT, 2, "Note does not store a ref");
+
+my $x2 = \(my $y2);
+push @events => intercept { diag $x2 };
+is(B::svref_2object($x2)->REFCNT, 2, "diag does not store a ref");
+
+my $x3 = \(my $y3);
+push @events => intercept { ok($x3, "Generating") };
+is(B::svref_2object($x3)->REFCNT, 2, "ok does not store a ref");
+
+done_testing;
index d4b12ce..5f8abea 100644 (file)
@@ -5,12 +5,23 @@ use warnings;
 
 use Test::More;
 
+my @warnings;
+local $SIG{__WARN__} = sub { push @warnings, $_[0] };
+
 subtest my_subtest1 => sub {
     my $file = __FILE__;
     $file =~ s/\.t$/1.load/;
     do $file;
 };
 
+is(scalar(@warnings), 1, "one warning");
+like(
+    $warnings[0],
+    qr/^SKIP_ALL in subtest via 'BEGIN' or 'use'/,
+    "the warning"
+);
+
+
 subtest my_subtest2 => sub {
     my $file = __FILE__;
     $file =~ s/\.t$/2.load/;
diff --git a/cpan/Test-Simple/t/Legacy/ribasushi_diag.t b/cpan/Test-Simple/t/Legacy/ribasushi_diag.t
deleted file mode 100644 (file)
index 570ee51..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-use strict;
-use warnings;
-
-use Test::More;
-
-BEGIN {
-    my $has_module = eval { require SQL::Abstract::Test; 1 };
-    my $required = $ENV{AUTHOR_TESTING};
-
-    if ($required && !$has_module) {
-        die "This test requires 'SQL::Abstract::Test' to be installed when AUTHOR_TESTING.\n";
-    }
-
-    unless($required) {
-        plan skip_all => "Only run when AUTHOR_TESTING is set";
-    }
-}
-
-{
-    package Worker;
-
-    sub do_work {
-        local $Test::Builder::Level = $Test::Builder::Level + 2;
-        shift->();
-    }
-}
-
-use SQL::Abstract::Test;
-use Test::Stream::Tester;
-
-my $events = intercept {
-    local $TODO = "Not today";
-
-    Worker::do_work(
-        sub {
-            SQL::Abstract::Test::is_same_sql_bind(
-                'buh', [],
-                'bah', [1],
-            );
-        }
-    );
-};
-
-ok( !(grep { $_->context->in_todo ? 0 : 1 } @{$events->[0]->diag}), "All diag is todo" );
-
-events_are(
-    $events,
-    check {
-        event ok => {
-            in_todo => 1,
-        };
-        event note => { in_todo => 1 };
-        event note => { in_todo => 1 };
-        dir 'end';
-    },
-    "All events are TODO"
-);
-
-done_testing;
index 5a0166d..92af4dc 100644 (file)
@@ -15,7 +15,7 @@ use warnings;
 
 use Test::Builder::NoOutput;
 
-use Test::More tests => 16;
+use Test::More tests => 18;
 
 # Formatting may change if we're running under Test::Harness.
 $ENV{HARNESS_ACTIVE} = 0;
@@ -166,8 +166,18 @@ END
     my $tb = Test::Builder::NoOutput->create;
 
     {
+        my @warnings;
+        local $SIG{__WARN__} = sub { push @warnings, $_[0] };
+
         my $child = $tb->child('skippy says he loves you');
-        eval { $child->plan( skip_all => 'cuz I said so' ) };
+        eval { $child->plan(skip_all => 'cuz I said so') };
+
+        is(scalar(@warnings), 1, "one warning");
+        like(
+            $warnings[0],
+            qr/^SKIP_ALL in subtest could not find flow-control label,/,
+            "the warning"
+        );
     }
     subtest 'skip all', sub {
         plan skip_all => 'subtest with skip_all';
index 95ba48e..d5297d2 100644 (file)
@@ -3,6 +3,7 @@ use warnings;
 
 use Test::Stream;
 use Test::More;
+use Test::Stream::Tester qw/intercept/;
 
 use ok 'Test::Stream::Event::Diag';
 
@@ -10,7 +11,8 @@ my $ctx = context(-1); my $line = __LINE__;
 $ctx = $ctx->snapshot;
 is($ctx->line, $line, "usable context");
 
-my $diag = $ctx->diag('hello');
+my $diag;
+intercept { $diag = context()->diag('hello') };
 ok($diag, "build diag");
 isa_ok($diag, 'Test::Stream::Event::Diag');
 is($diag->message, 'hello', "message");
index 6bae48c..8596494 100644 (file)
@@ -19,7 +19,7 @@ unless ($pid) {
 
     {
         my $force_exit = Test::Stream::ForceExit->new;
-        diag "In Child";
+        note "In Child";
     }
 
     print $write "Did not exit!";
@@ -48,7 +48,7 @@ unless ($pid) {
 
     {
         my $force_exit = Test::Stream::ForceExit->new;
-        diag "In Child $$";
+        note "In Child $$";
         $force_exit->done(1);
     }
 
index 7d2b777..dfc9836 100644 (file)
@@ -17,7 +17,7 @@ use File::Spec;
 
 no warnings 'utf8';
 
-our $VERSION = '1.10';
+our $VERSION = '1.11';
 our $PACKAGE = __PACKAGE__;
 
 ### begin XS only ###
index a2c0466..f734dee 100644 (file)
@@ -4,7 +4,7 @@ use 5.006;
 use strict;
 use warnings;
 
-our $VERSION = '1.10';
+our $VERSION = '1.11';
 
 my %u2p;
 my $wt = 0x8000;
index 311ad60..9ad06b0 100644 (file)
@@ -4,7 +4,7 @@ use 5.006;
 use strict;
 use warnings;
 
-our $VERSION = '1.10';
+our $VERSION = '1.11';
 
 my %u2p;
 my $wt = 0x8000;
index be8e7e3..4406c80 100644 (file)
@@ -4,7 +4,7 @@ use 5.006;
 use strict;
 use warnings;
 
-our $VERSION = '1.10';
+our $VERSION = '1.11';
 
 my %u2p;
 my $wt = 0x8000;
index 48fa6ab..ac39beb 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 use warnings;
 use Unicode::Collate;
 
-our $VERSION = '1.10';
+our $VERSION = '1.11';
 
 my %jamo2prim = (
     0x1100, 0x376F,   0x1101, 0x3770,   0x1102, 0x3771,   0x1103, 0x3772,
index 8e5e2fc..e64b756 100644 (file)
@@ -4,7 +4,7 @@ use 5.006;
 use strict;
 use warnings;
 
-our $VERSION = '1.10';
+our $VERSION = '1.11';
 
 my %u2p;
 my $wt = 0x8000;
index a93a297..34c7dd9 100644 (file)
@@ -4,7 +4,7 @@ use 5.006;
 use strict;
 use warnings;
 
-our $VERSION = '1.10';
+our $VERSION = '1.11';
 
 my %u2p;
 my $wt = 0x8000;
index 5374266..251ce52 100644 (file)
@@ -4,7 +4,7 @@ use 5.006;
 use strict;
 use warnings;
 
-our $VERSION = '1.10';
+our $VERSION = '1.11';
 
 my %u2p;
 my $wt = 0x8000;
index 57ad352..4662861 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 use Carp;
 use base qw(Unicode::Collate);
 
-our $VERSION = '1.10';
+our $VERSION = '1.11';
 
 my $PL_EXT  = '.pl';
 
index 9b4d25f..ebb3081 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0149      ; [.1A7D.0020.0009] # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
 ENTRY
index 1ccd216..8465744 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0629      ; [.2025.0021.0002] # ARABIC LETTER TEH MARBUTA
 FE94      ; [.2025.0021.0019] # ARABIC LETTER TEH MARBUTA FINAL FORM
index 72c39f3..7afc12d 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0982      ; [.23CC.0020.0002][.FFF1.0000.0000] # BENGALI SIGN ANUSVARA
 0981      ; [.23CC.0020.0002][.FFF2.0000.0000] # BENGALI SIGN CANDRABINDU
index 08f6360..2c8c32a 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
 # schwa doesn't require tailoring
    entry => <<'ENTRY', # for DUCET v7.0.0
 00E7      ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
index 6fe0c67..592a6b1 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
                0x0416, 0x0436, 0x0417, 0x0437, 0x0406, 0x0456, 0x041E, 0x043E,
                0x04E8, 0x04E9, 0x041A, 0x043A, 0x0427, 0x0447, 0x042B, 0x044B,
index 55127b2..b704280 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
                0x0416, 0x0436, 0x0417, 0x0437, 0x0406, 0x0456, 0x041E, 0x043E,
                0x04E8, 0x04E9, 0x041A, 0x043A, 0x0423, 0x0443, 0x0427, 0x0447,
index a5f069e..120d2ff 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0982      ; [.23CC.0020.0002][.FFF1.0000.0000] # BENGALI SIGN ANUSVARA
 0983      ; [.23CC.0020.0002][.FFF2.0000.0000] # BENGALI SIGN VISARGA
index b0f085c..3946bdb 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    backwards => 2,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0063 0068 ; [.193F.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
index 698f6ea..f9be2aa 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 010D      ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
 0063 030C ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
index 9a8184a..b7f3c6a 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0063 0068 ; [.193F.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
 0043 0068 ; [.193F.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
index 70581b4..614bce7 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    upper_before_lower => 1,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0111      ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
index b9649ac..1c3617f 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 00E4      ; [.190C.0021.0002][.196E.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
 0061 0308 ; [.190C.0021.0002][.196E.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
index a944a87..6d19565 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
 # d-tail, open-e, f-hook, gamma, eng, open-o, v-hook don't require tailoring
    entry => <<'ENTRY', # for DUCET v7.0.0
 0302      ; [.0000.0029.0002] # COMBINING CIRCUMFLEX ACCENT
index 0e10ea3..8904187 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0109      ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
 0063 0302 ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
index 34134c4..bd74733 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 00F1      ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
 006E 0303 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
index 86513be..fcfbcfe 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0063 0068 ; [.193F.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
 0043 0068 ; [.193F.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
index 7367bcd..66dfa39 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0161      ; [.1B54.0020.0002] # LATIN SMALL LETTER S WITH CARON
 0073 030C ; [.1B54.0020.0002] # LATIN SMALL LETTER S WITH CARON
index 9f5f244..11d9bc0 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0650      ; [.0000.0077.0002] # ARABIC KASRA
 064B      ; [.0000.007B.0002] # ARABIC FATHATAN
index 15d625c..377a433 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
 # in cldr test/fi.xml why x{110}x < xdx though xd < x{110} ?
    entry => <<'ENTRY', # for DUCET v7.0.0
 0111      ; [.1953.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
index 13539a4..a290717 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
 # in cldr test/fi.xml why x{110}x < xdx though xd < x{110} ?
    entry => <<'ENTRY', # for DUCET v7.0.0
 0111      ; [.1953.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
index 25d80b2..5988318 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 00F1      ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
 006E 0303 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
index f141a6c..ee947d3 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0111      ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
 0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
index 2cb40cd..e53c018 100644 (file)
@@ -1,4 +1,4 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    backwards => 2,
 };
index 551e62c..38a222f 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0A82      ; [.2438.0020.0002][.FFF1.0000.0000] # GUJARATI SIGN ANUSVARA
 0A81      ; [.2438.0021.0002][.FFF1.0000.0000] # GUJARATI SIGN CANDRABINDU
index b348e4d..303fcc5 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
 # b-hook, d-hook, k-hook, y-hook don't require tailoring
    entry => <<'ENTRY', # for DUCET v7.0.0
 0073 0068 ; [.1B34.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
index fb7122d..c67e26f 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0065      ; [.190D.0020.0002] # LATIN SMALL LETTER E
 0045      ; [.190D.0020.0008] # LATIN CAPITAL LETTER E
index d92f27d..8fc9019 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0902      ; [.235B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
 0901      ; [.235B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
index 0db8269..db73f1e 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 010D      ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
 0063 030C ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
index ec68b0c..93fe582 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0063 0073 ; [.193F.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER S>
 0063 0053 ; [.193F.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER S>
index 2822ad4..ab0c1b0 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0587      ; [.1FBD.0020.0002][.FFF1.0000.0000] # ARMENIAN SMALL LIGATURE ECH YIWN
 0584      ; [.1FBD.0020.0002][.FFF0.0000.0000] # ARMENIAN SMALL LETTER KEH
index 54fe425..d336161 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0063 0068 ; [.1926.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
 0043 0068 ; [.1926.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
index 84f363b..aedb0d9 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 00E1      ; [.1924.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
 0061 0301 ; [.1924.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
index 1d566b9..52591ce 100644 (file)
@@ -1,6 +1,6 @@
 use Unicode::Collate::CJK::JISX0208;
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    overrideCJK => \&Unicode::Collate::CJK::JISX0208::weightJISX0208,
    entry => <<'ENTRY', # for DUCET v7.0.0
 30A1      ; [.38D4.0020.000F.0002] # KATAKANA LETTER SMALL A
index 0bff075..b9ff218 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
                0x0416, 0x0436, 0x0417, 0x0437, 0x0406, 0x0456, 0x041E, 0x043E,
                0x04E8, 0x04E9, 0x041A, 0x043A, 0x0423, 0x0443, 0x0427, 0x0447,
index 04dac9a..ea9012b 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0111      ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
 0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
index 94a1039..7c11dbf 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0C82      ; [.2549.0020.0002][.FFF1.0000.0000] # KANNADA SIGN ANUSVARA
 0C83      ; [.2549.0020.0002][.FFF2.0000.0000] # KANNADA SIGN VISARGA
index ba9d066..12521b5 100644 (file)
@@ -1,6 +1,6 @@
 use Unicode::Collate::CJK::Korean;
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    overrideCJK => \&Unicode::Collate::CJK::Korean::weightKorean,
    entry => <<'ENTRY', # for DUCET v7.0.0
 F967      ; [.3776.0021.0002.4E0D][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F967
index 2a5f2c2..43ea485 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0902      ; [.235B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
 0901      ; [.235B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
index 2dddd69..85eb3e4 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 025B      ; [.196F.0020.0002] # LATIN SMALL LETTER OPEN E
 0190      ; [.196F.0020.0008] # LATIN CAPITAL LETTER OPEN E
index 785c50b..4b96426 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
 # in cldr test/lt.xml why I-dot-acute > I-dot though i-dot-acute < i-dot ?
    entry => <<'ENTRY', # for DUCET v7.0.0
 0049 0307 ; [.19F6.0020.0008][.0000.002E.0002] # <LATIN CAPITAL LETTER I, COMBINING DOT ABOVE>
index 086802c..95bf61c 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 010D      ; [.1952.0020.0002] # LATIN SMALL LETTER C WITH CARON
 0063 030C ; [.1952.0020.0002] # LATIN SMALL LETTER C WITH CARON
index 3a2fbf7..e89dc56 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0415, 0x0435, 0x0416, 0x0436,
                0x0417, 0x0437, 0x0418, 0x0438, 0x0406, 0x0456, 0x041E, 0x043E,
                0x04E8, 0x04E9, 0x0423, 0x0443, 0x0427, 0x0447, 0x042B, 0x044B,
index 0766243..c009168 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0D3D      ; [.0000.00C0.0002] # MALAYALAM SIGN AVAGRAHA
 0D57      ; [.25C8.0020.0002] # MALAYALAM AU LENGTH MARK
index 8d34e6f..0218d97 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0902      ; [.235B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
 0901      ; [.235B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
index 42a710a..c2fb762 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    upper_before_lower => 1,
    entry => <<'ENTRY', # for DUCET v7.0.0
 010B      ; [.193D.0020.0002] # LATIN SMALL LETTER C WITH DOT ABOVE
index 910cde7..c037e7d 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0111      ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
 0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
index 910cde7..c037e7d 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0111      ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
 0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
index 6d270e7..89d9056 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 00EA      ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
 0065 0302 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
index c431b1a..b813134 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0063 0068 ; [.1BE4.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
 0043 0068 ; [.1BE4.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
index e011800..ecbfe0d 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0B01      ; [.2489.0020.0002][.FFF1.0000.0000] # ORIYA SIGN CANDRABINDU
 0B02      ; [.2489.0020.0002][.FFF2.0000.0000] # ORIYA SIGN ANUSVARA
index 73e8922..9dbed5f 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0A71      ; [.0000.00BD.0002] # GURMUKHI ADDAK
 0A03      ; [.0000.00BC.0002] # GURMUKHI SIGN VISARGA
index 9bc1ac2..f7cb9c6 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0105      ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH OGONEK
 0061 0328 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH OGONEK
index b93c774..ecb87a8 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0103      ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH BREVE
 0061 0306 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH BREVE
index 55127b2..b704280 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
                0x0416, 0x0436, 0x0417, 0x0437, 0x0406, 0x0456, 0x041E, 0x043E,
                0x04E8, 0x04E9, 0x041A, 0x043A, 0x0423, 0x0443, 0x0427, 0x0447,
index 8d34e6f..0218d97 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0902      ; [.235B.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
 0901      ; [.235B.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
index 25ab014..96acf54 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
 # eng, g-stroke, t-stroke don't require tailoring
    entry => <<'ENTRY', # for DUCET v7.0.0
 00E1      ; [.1924.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
index fefab6b..f226cf4 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0D82      ; [.25DC.0020.0002][.FFF1.0000.0000] # SINHALA SIGN ANUSVARAYA
 0D83      ; [.25DC.0020.0002][.FFF2.0000.0000] # SINHALA SIGN VISARGAYA
index fc90464..154a4e3 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0D82      ; [.25DC.0020.0002][.FFF1.0000.0000] # SINHALA SIGN ANUSVARAYA
 0D83      ; [.25DC.0020.0002][.FFF2.0000.0000] # SINHALA SIGN VISARGAYA
index f194a4d..0a81f09 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 00E4      ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
 0061 0308 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
index 46617f4..3fec1a3 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 010D      ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
 0063 030C ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
index d3d82af..3e0efc7 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 00E7      ; [.1952.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
 0063 0327 ; [.1952.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
index bba0e26..0b17447 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
                0x0416, 0x0436, 0x0417, 0x0437, 0x0418, 0x0438, 0x0406, 0x0456,
                0x041E, 0x043E, 0x04E8, 0x04E9, 0x041A, 0x043A, 0x0423, 0x0443,
index 5a83127..966a649 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0111      ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
 0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
index 4101f98..80eab22 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0111      ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
 0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
index fa413a9..bfb7bb9 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0B82      ; [.24CC.0020.0002][.FFF0.0000.0000] # TAMIL SIGN ANUSVARA
 0B83      ; [.24CC.0020.0002][.FFF1.0000.0000] # TAMIL SIGN VISARGA
index 7bb0dc9..3f49d4b 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0C01      ; [.2500.0020.0002][.FFF1.0000.0000] # TELUGU SIGN CANDRABINDU
 0C02      ; [.2500.0020.0002][.FFF2.0000.0000] # TELUGU SIGN ANUSVARA
index b47a83e..d678747 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    variable => 'shifted',
    alternate => 'shifted',
    entry => <<'ENTRY', # for DUCET v7.0.0
index 6d270e7..89d9056 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 00EA      ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
 0065 0302 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
index 8dc774f..472fca1 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 006E 0067 ; [.1A7E.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER G>
 004E 0067 ; [.1A7E.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER G>
index 3f1fde4..6288f2b 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 00E7      ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
 0063 0327 ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
index 1a1cc02..0585112 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    suppress => [0x0410, 0x0430, 0x04D8, 0x04D9, 0x0413, 0x0433, 0x0415, 0x0435,
                0x0416, 0x0436, 0x0417, 0x0437, 0x041E, 0x043E, 0x04E8, 0x04E9,
                0x041A, 0x043A, 0x0423, 0x0443, 0x0427, 0x0447, 0x042B, 0x044B,
index 3204253..767d14c 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0623      ; [.2015.0021.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
 0627 0654 ; [.2015.0021.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
index 5b359c2..bab2e05 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
 # 0306 is not a Vietnamese tone, just to avoid \x{306} eq. to something.
    entry => <<'ENTRY', # for DUCET v7.0.0
 0309      ; [.0000.0026.0002][.0000.00F0.0000] # COMBINING HOOK ABOVE
index 9ab7c3c..a530399 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0061 0061 ; [.190C.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
 00E4 00E4 ; [.190C.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A WITH DIAERESIS, LATIN SMALL LETTER A WITH DIAERESIS>
index ec060f3..74c7858 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
 # eng doesn't require tailoring
    entry => <<'ENTRY', # for DUCET v7.0.0
 00E0      ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH GRAVE
index fe5eab1..4afdc41 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 1EB9      ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH DOT BELOW
 0065 0323 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH DOT BELOW
index e87c7fd..e8a2b44 100644 (file)
@@ -1,5 +1,5 @@
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0101      ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
 0061 0304 ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
index bf0a460..ff35bb1 100644 (file)
@@ -1,6 +1,6 @@
 use Unicode::Collate::CJK::Big5;
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    overrideCJK => \&Unicode::Collate::CJK::Big5::weightBig5,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0101      ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
index a14e5b7..5bcaf2d 100644 (file)
@@ -1,6 +1,6 @@
 use Unicode::Collate::CJK::GB2312;
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    overrideCJK => \&Unicode::Collate::CJK::GB2312::weightGB2312,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0101      ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
index e5cefa2..c4e88a9 100644 (file)
@@ -1,6 +1,6 @@
 use Unicode::Collate::CJK::Pinyin;
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    overrideCJK => \&Unicode::Collate::CJK::Pinyin::weightPinyin,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0101      ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
index 55d3e5d..bc6fd19 100644 (file)
@@ -1,6 +1,6 @@
 use Unicode::Collate::CJK::Stroke;
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    overrideCJK => \&Unicode::Collate::CJK::Stroke::weightStroke,
    entry => <<'ENTRY', # for DUCET v7.0.0
 0101      ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
index 8571837..906fee1 100644 (file)
@@ -1,6 +1,6 @@
 use Unicode::Collate::CJK::Zhuyin;
 +{
-   locale_version => 1.10,
+   locale_version => 1.11,
    overrideCJK => \&Unicode::Collate::CJK::Zhuyin::weightZhuyin,
    entry => <<'ENTRY', # for DUCET v7.0.0
 02C9      ; [.0000.0199.0002] # MODIFIER LETTER MACRON
index 11f85b6..4954b51 100644 (file)
@@ -114,7 +114,7 @@ my $init = '';
        $line =~ s/\s*\z//;
        next if $line eq '';
        $init .= "/*$line*/\n" if $line =~ /^[A-Za-z0-9_.:;@\ \[\]]+\z/;
-       $init .= "($type)".stringify($line).",\n";
+       $init .= stringify($line).",\n";
     }
     $init .= "NULL\n"; # sentinel
     $init .= "};\n\n";
@@ -167,7 +167,7 @@ EOF
            printf "static const $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}
+                   ? $val{$p}{$r}{$c}
                    : $null;
                print ','  if $c != 255;
                print "\n" if $c % 8 == 7;
index 98056d7..e3a081d 100644 (file)
@@ -37,7 +37,7 @@ my $objEs = Unicode::Collate::Locale->
     new(locale => 'ES', normalization => undef);
 
 ok($objEs->getlocale, 'es');
-ok($objEs->locale_version, 1.10);
+ok($objEs->locale_version, 1.11);
 
 $objEs->change(level => 1);
 
index 5db47c9..d8a2b0e 100644 (file)
@@ -37,7 +37,7 @@ my $objEsTrad = Unicode::Collate::Locale->
     new(locale => 'ES-trad', normalization => undef);
 
 ok($objEsTrad->getlocale, 'es__traditional');
-ok($objEsTrad->locale_version, 1.10);
+ok($objEsTrad->locale_version, 1.11);
 
 $objEsTrad->change(level => 1);
 
index b0ef162..fa8cdf4 100644 (file)
@@ -40,7 +40,7 @@ my $objFr = Unicode::Collate::Locale->
     new(locale => 'FR', normalization => undef);
 
 ok($objFr->getlocale, 'fr');
-ok($objFr->locale_version, 1.10);
+ok($objFr->locale_version, 1.11);
 
 $objFr->change(level => 1);
 
index 027af0e..4cc880b 100644 (file)
@@ -8,7 +8,7 @@ package Win32;
     require DynaLoader;
 
     @ISA = qw|Exporter DynaLoader|;
-    $VERSION = '0.49';
+    $VERSION = '0.51';
     $XS_VERSION = $VERSION;
     $VERSION = eval $VERSION;
 
@@ -468,6 +468,15 @@ sub _GetOSName {
                $os = "2012";
            }
            }
+           elsif ($minor == 3) {
+               if ($producttype == VER_NT_WORKSTATION) {
+                   $os = "8.1";
+               }
+               else {
+                   $os = "2012";
+                   $desc = "R2";
+               }
+           }
 
         if ($productinfo == PRODUCT_ULTIMATE) {
                $desc .= " Ultimate";
index b47df40..de3764e 100644 (file)
@@ -237,7 +237,7 @@ get_unicode_env(pTHX_ WCHAR *name)
             pfnCreateEnvironmentBlock(&env, token, FALSE))
         {
             size_t name_len = wcslen(name);
-            WCHAR *entry = env;
+            WCHAR *entry = (WCHAR *)env;
             while (*entry) {
                 size_t i;
                 size_t entry_len = wcslen(entry);
@@ -818,7 +818,11 @@ XS(w32_GuidGen)
 
     if (SUCCEEDED(hr)) {
        LPOLESTR pStr = NULL;
+#ifdef __cplusplus
+       if (SUCCEEDED(StringFromCLSID(guid, &pStr))) {
+#else
        if (SUCCEEDED(StringFromCLSID(&guid, &pStr))) {
+#endif
             WideCharToMultiByte(CP_ACP, 0, pStr, (int)wcslen(pStr), szGUID,
                                 sizeof(szGUID), NULL, NULL);
             CoTaskMemFree(pStr);
index 03b736e..ca7cf3c 100644 (file)
@@ -10,7 +10,7 @@ use Fcntl qw( O_RDONLY O_RDWR O_WRONLY O_APPEND O_BINARY O_TEXT );
 use vars qw( $VERSION @ISA );
 use vars qw( @EXPORT @EXPORT_OK @EXPORT_FAIL %EXPORT_TAGS );
 
-$VERSION= '0.1201';
+$VERSION= '0.1202';
 
 use base qw( Exporter DynaLoader Tie::Handle IO::File );
 
@@ -946,7 +946,7 @@ This is a Perl-friendly wrapper around C<CreateFile>.
 
 On failure, C<$hObject> gets set to a false value and C<regLastError()>
 and C<$^E> are set to the reason for the failure.  Otherwise,
-C<$hObject> gets set to a Win32 native file handle which is alwasy
+C<$hObject> gets set to a Win32 native file handle which is always
 a true value [returns C<"0 but true"> in the impossible(?) case of
 the handle having a value of C<0>].
 
@@ -1163,7 +1163,7 @@ indicate the type of access desired.  C<GENERIC_READ> is the default.
 
 =item Create => $uCreate
 
-C<$sCreate> should be a string constaing zero or one character from
+C<$sCreate> should be a string containing zero or one character from
 C<"ktn"> and zero or one character from C<"ce">.  These stand for
 "Keep if exists", "Truncate if exists", "New file only", "Create if
 none", and "Existing file only".  These are translated into a
@@ -1205,7 +1205,7 @@ Examples:
 =item C<@roots= getLogicalDrives()>
 
 Returns the paths to the root directories of all logical drives
-currently defined.  This includes all types of drive lettters, such
+currently defined.  This includes all types of drive letters, such
 as floppies, CD-ROMs, hard disks, and network shares.  A typical
 return value on a poorly equipped computer would be C<("A:\\","C:\\")>.
 
@@ -1229,7 +1229,7 @@ same file name.
 
 If C<$bFailIfExists> is true and C<$sNewFileName> is the path to
 a file that already exists, then C<CopyFile> will fail.  If
-C<$bFailIfExists> is falsea, then the copy of the C<$sOldFileNmae>
+C<$bFailIfExists> is false, then the copy of the C<$sOldFileNmae>
 file will overwrite the C<$sNewFileName> file if it already exists.
 
 Like most routines, returns a true value if successful and a false
@@ -1301,7 +1301,7 @@ on that partition.
 The raw floppy disk.  Doesn't work under Windows 95.  This allows
 you to read or write raw sectors of the floppy disk and to use
 C<DeviceIoControl> to perform miscellaneous queries and operations
-to the floopy disk or drive.
+to the floppy disk or drive.
 
 Locking this for exclusive access prevents all access to the floppy.
 
@@ -1327,7 +1327,7 @@ If another process currently has read, write, and/or delete access to
 the file and you don't allow that level of sharing, then your call to
 C<CreateFile> will fail.  If you requested read, write, and/or delete
 access and another process already has the file open but doesn't allow
-that level of sharing, thenn your call to C<createFile> will fail.  Once
+that level of sharing, then your call to C<createFile> will fail.  Once
 you have the file open, if another process tries to open it with read,
 write, and/or delete access and you don't allow that level of sharing,
 then that process won't be allowed to open the file.
@@ -2197,7 +2197,7 @@ Only bits set in C<$uMask> will be modified by C<SetHandleInformation>.
 
 C<$uFlags> is an unsigned value having zero or more of the bits
 C<HANDLE_FLAG_INHERIT> and C<HANDLE_FLAG_PROTECT_FROM_CLOSE> set.
-For each bit set in C<$uMask>, the cooresponding bit in the handle's
+For each bit set in C<$uMask>, the corresponding bit in the handle's
 flags is set to the value of the corresponding bit in C<$uFlags>.
 
 If C<$uOldFlags> were the value of the handle's flags before the
@@ -2673,7 +2673,7 @@ value for any partitions you wish to have changed, added, or deleted.
 
 Change the type of the partition.  C<$opOutBuf> should be C<[]>.
 C<$pInBuf> should be a C<SET_PARTITION_INFORMATION> data structure
-which is just a single byte containing the new parition type [see
+which is just a single byte containing the new partition type [see
 the C<":PARTITION_"> export class for a list of known types]:
 
     $pInBuf= pack( "C", $uPartitionType );
@@ -2831,7 +2831,7 @@ driver of size C<$uLogBufferSize>:
 
 =item DISK_LOGGING_STOP
 
-Stop loggin each disk request:
+Stop logging each disk request:
 
     $pInBuf= pack( "C L L", 1, 0, 0 );
 
index cff488f..83971d0 100644 (file)
@@ -148,7 +148,7 @@ CreateFileA( sPath, uAccess, uShare, pSecAttr, uCreate, uFlags, hModel )
        HANDLE  hModel
     CODE:
        RETVAL= CreateFileA( sPath, uAccess, uShare,
-         pSecAttr, uCreate, uFlags, hModel );
+         (LPSECURITY_ATTRIBUTES)pSecAttr, uCreate, uFlags, hModel );
        if(  INVALID_HANDLE_VALUE == RETVAL  ) {
            SaveErr( 1 );
            XSRETURN_NO;
@@ -170,7 +170,7 @@ CreateFileW( swPath, uAccess, uShare, pSecAttr, uCreate, uFlags, hModel )
        HANDLE  hModel
     CODE:
        RETVAL= CreateFileW( swPath, uAccess, uShare,
-         pSecAttr, uCreate, uFlags, hModel );
+         (LPSECURITY_ATTRIBUTES)pSecAttr, uCreate, uFlags, hModel );
        if(  INVALID_HANDLE_VALUE == RETVAL  ) {
            SaveErr( 1 );
            XSRETURN_NO;
@@ -246,7 +246,7 @@ DeviceIoControl( hDevice, uIoControlCode, pInBuf, lInBuf, opOutBuf, lOutBuf, olR
        }
        grow_buf_l( opOutBuf,ST(4),char *, lOutBuf,ST(5) );
        RETVAL= DeviceIoControl( hDevice, uIoControlCode, pInBuf, lInBuf,
-                 opOutBuf, lOutBuf, &olRetBytes, pOverlapped );
+                 opOutBuf, lOutBuf, &olRetBytes, (LPOVERLAPPED)pOverlapped );
        SaveErr( !RETVAL );
     OUTPUT:
        RETVAL
@@ -553,7 +553,8 @@ ReadFile( hFile, opBuffer, lBytes, olBytesRead, pOverlapped )
        if(  0 == lBytes  &&  autosize(ST(2))  ) {
            lBytes= SvLEN( ST(1) ) - 1;
        }
-       RETVAL= ReadFile( hFile, opBuffer, lBytes, &olBytesRead, pOverlapped );
+       RETVAL= ReadFile( hFile, opBuffer, lBytes, &olBytesRead,
+                 (LPOVERLAPPED)pOverlapped );
        SaveErr( !RETVAL );
     OUTPUT:
        RETVAL
@@ -640,7 +641,7 @@ WriteFile( hFile, pBuffer, lBytes, ouBytesWritten, pOverlapped )
              "Win32API::File::WriteFile", SvCUR(ST(1)), lBytes );
        }
        RETVAL= WriteFile( hFile, pBuffer, lBytes,
-                 &ouBytesWritten, pOverlapped );
+                 &ouBytesWritten, (LPOVERLAPPED)pOverlapped );
        SaveErr( !RETVAL );
     OUTPUT:
        RETVAL
index e39ba5d..8fc808a 100644 (file)
@@ -1,5 +1,5 @@
 use strict;
 use warnings;
 package perlfaq;
-$perlfaq::VERSION = '5.0150046';
+$perlfaq::VERSION = '5.021009';
 1;
index 834351e..9ffec6f 100644 (file)
@@ -2,6 +2,10 @@
 
 perlfaq - frequently asked questions about Perl
 
+=head1 VERSION
+
+version 5.021009
+
 =head1 DESCRIPTION
 
 The perlfaq comprises several documents that answer the most commonly
index ad39051..fb52cd3 100644 (file)
@@ -2,6 +2,10 @@
 
 perlfaq1 - General Questions About Perl
 
+=head1 VERSION
+
+version 5.021009
+
 =head1 DESCRIPTION
 
 This section of the FAQ answers very general, high-level questions
index 4f0a413..d4f81b0 100644 (file)
@@ -2,6 +2,10 @@
 
 perlfaq2 - Obtaining and Learning about Perl
 
+=head1 VERSION
+
+version 5.021009
+
 =head1 DESCRIPTION
 
 This section of the FAQ answers questions about where to find
@@ -174,7 +178,7 @@ There's also I<$foo Magazin>, a German magazine dedicated to Perl, at
 German-speaking magazine for Perl beginners (see
 L<http://perl-zeitung.at.tf> ).
 
-Several unix/linux related magazines frequently includes articles on Perl.
+Several Unix/Linux related magazines frequently include articles on Perl.
 
 =head2 Which Perl blogs should I read?
 
index 46de630..9411862 100644 (file)
@@ -2,6 +2,10 @@
 
 perlfaq3 - Programming Tools
 
+=head1 VERSION
+
+version 5.021009
+
 =head1 DESCRIPTION
 
 This section of the FAQ answers questions related to programmer tools
@@ -495,10 +499,6 @@ The following are Win32 multilanguage editor/IDEs that support Perl:
 
 =over 4
 
-=item Codewright
-
-L<http://www.borland.com/codewright/>
-
 =item MultiEdit
 
 L<http://www.MultiEdit.com/>
@@ -525,57 +525,26 @@ powerful shell environment for Win32. Your options include
 
 =over 4
 
-=item Bash
-
-from the Cygwin package ( L<http://sources.redhat.com/cygwin/> )
-
-=item Ksh
-
-from the MKS Toolkit ( L<http://www.mkssoftware.com/> ), or the Bourne shell of
-the U/WIN environment ( L<http://www.research.att.com/sw/tools/uwin/> )
+=item bash
 
-=item Tcsh
+from the Cygwin package ( L<http://cygwin.com/> )
 
-L<ftp://ftp.astron.com/pub/tcsh/> , see also
-L<http://www.primate.wisc.edu/software/csh-tcsh-book/>
-
-=item Zsh
+=item zsh
 
 L<http://www.zsh.org/>
 
 =back
 
-MKS and U/WIN are commercial (U/WIN is free for educational and
-research purposes), Cygwin is covered by the GNU General Public
-License (but that shouldn't matter for Perl use). The Cygwin, MKS,
-and U/WIN all contain (in addition to the shells) a comprehensive set
+Cygwin is covered by the GNU General Public
+License (but that shouldn't matter for Perl use). Cygwin
+contains (in addition to the shell) a comprehensive set
 of standard Unix toolkit utilities.
 
-If you're transferring text files between Unix and Windows using FTP
-be sure to transfer them in ASCII mode so the ends of lines are
-appropriately converted.
-
-On Mac OS the MacPerl Application comes with a simple 32k text editor
-that behaves like a rudimentary IDE. In contrast to the MacPerl Application
-the MPW Perl tool can make use of the MPW Shell itself as an editor (with
-no 32k limit).
-
 =over 4
 
-=item Affrus
-
-is a full Perl development environment with full debugger support
-( L<http://www.latenightsw.com> ).
-
-=item Alpha
-
-is an editor, written and extensible in Tcl, that nonetheless has
-built-in support for several popular markup and programming languages,
-including Perl and HTML ( L<http://www.his.com/~jguyer/Alpha/Alpha8.html> ).
-
 =item BBEdit and TextWrangler
 
-are text editors for Mac OS that have a Perl sensitivity mode
+are text editors for OS X that have a Perl sensitivity mode
 ( L<http://www.barebones.com/> ).
 
 =back
index 1f9fc92..6645aac 100644 (file)
@@ -2,6 +2,10 @@
 
 perlfaq4 - Data Manipulation
 
+=head1 VERSION
+
+version 5.021009
+
 =head1 DESCRIPTION
 
 This section of the FAQ answers questions related to manipulating
index 1ab722c..9550e58 100644 (file)
@@ -2,6 +2,10 @@
 
 perlfaq5 - Files and Formats
 
+=head1 VERSION
+
+version 5.021009
+
 =head1 DESCRIPTION
 
 This section deals with I/O and the "f" issues: filehandles, flushing,
index 1ab5502..2cc1af5 100644 (file)
@@ -2,6 +2,10 @@
 
 perlfaq6 - Regular Expressions
 
+=head1 VERSION
+
+version 5.021009
+
 =head1 DESCRIPTION
 
 This section is surprisingly small because the rest of the FAQ is
index 3c5ab84..3a1238c 100644 (file)
@@ -2,6 +2,10 @@
 
 perlfaq7 - General Perl Language Issues
 
+=head1 VERSION
+
+version 5.021009
+
 =head1 DESCRIPTION
 
 This section deals with general Perl language issues that don't
index a8f16cb..c5a1604 100644 (file)
@@ -2,6 +2,10 @@
 
 perlfaq8 - System Interaction
 
+=head1 VERSION
+
+version 5.021009
+
 =head1 DESCRIPTION
 
 This section of the Perl FAQ covers questions involving operating
index f844e31..ea9a55e 100644 (file)
@@ -2,6 +2,10 @@
 
 perlfaq9 - Web, Email and Networking
 
+=head1 VERSION
+
+version 5.021009
+
 =head1 DESCRIPTION
 
 This section deals with questions related to running web sites,
index 54096f7..7db2bb3 100644 (file)
@@ -5,6 +5,10 @@
 
 perlglossary - Perl Glossary
 
+=head1 VERSION
+
+version 5.021009
+
 =head1 DESCRIPTION
 
 A glossary of terms (technical and otherwise) used in the Perl
index 99b6945..62aa679 100644 (file)
@@ -87,7 +87,7 @@ BEGIN {
     }
 }
 
-our $VERSION = '1.34';
+our $VERSION = '1.35';
 
 our $MaxEvalLen = 0;
 our $Verbose    = 0;
@@ -299,12 +299,32 @@ sub format_arg {
                next;
            }
            my $o = ord($c);
-           substr $arg, $i, 1, sprintf("\\x{%x}", $o)
-               if $o < 0x20 || $o > 0x7f;
+
+            # This code is repeated in Regexp::CARP_TRACE()
+            if ($] ge 5.007_003) {
+                substr $arg, $i, 1, sprintf("\\x{%x}", $o)
+                 if utf8::native_to_unicode($o) < utf8::native_to_unicode(0x20)
+                  || utf8::native_to_unicode($o) > utf8::native_to_unicode(0x7e);
+            } elsif (ord("A") == 65) {
+                substr $arg, $i, 1, sprintf("\\x{%x}", $o)
+                    if $o < 0x20 || $o > 0x7e;
+            } else { # Early EBCDIC
+
+                # 3 EBCDIC code pages supported then;  all controls but one
+                # are the code points below SPACE.  The other one is 0x5F on
+                # POSIX-BC; FF on the other two.
+                substr $arg, $i, 1, sprintf("\\x{%x}", $o)
+                    if $o < ord(" ") || ((ord ("^") == 106)
+                                          ? $o == 0x5f
+                                          : $o == 0xff);
+            }
        }
     } else {
        $arg =~ s/([\"\\\$\@])/\\$1/g;
-       $arg =~ s/([^ -~])/sprintf("\\x{%x}",ord($1))/eg;
+        # This is all the ASCII printables spelled-out.  It is portable to all
+        # Perl versions and platforms (such as EBCDIC).  There are other more
+        # compact ways to do this, but may not work everywhere every version.
+        $arg =~ s/([^ !"\$\%#'()*+,\-.\/0123456789:;<=>?\@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]^_`abcdefghijklmnopqrstuvwxyz\{|}~])/sprintf("\\x{%x}",ord($1))/eg;
     }
     downgrade($arg, 1);
     return "\"".$arg."\"".$suffix;
@@ -317,11 +337,25 @@ sub Regexp::CARP_TRACE {
        for(my $i = length($arg); $i--; ) {
            my $o = ord(substr($arg, $i, 1));
            my $x = substr($arg, 0, 0);   # work around bug on Perl 5.8.{1,2}
-           substr $arg, $i, 1, sprintf("\\x{%x}", $o)
-               if $o < 0x20 || $o > 0x7f;
+
+            # This code is repeated in format_arg()
+            if ($] ge 5.007_003) {
+                substr $arg, $i, 1, sprintf("\\x{%x}", $o)
+                 if utf8::native_to_unicode($o) < utf8::native_to_unicode(0x20)
+                  || utf8::native_to_unicode($o) > utf8::native_to_unicode(0x7e);
+            } elsif (ord("A") == 65) {
+                substr $arg, $i, 1, sprintf("\\x{%x}", $o)
+                    if $o < 0x20 || $o > 0x7e;
+            } else { # Early EBCDIC
+                substr $arg, $i, 1, sprintf("\\x{%x}", $o)
+                    if $o < ord(" ") || ((ord ("^") == 106)
+                                          ? $o == 0x5f
+                                          : $o == 0xff);
+            }
        }
     } else {
-       $arg =~ s/([^ -~])/sprintf("\\x{%x}",ord($1))/eg;
+        # See comment in format_arg() about this same regex.
+        $arg =~ s/([^ !"\$\%#'()*+,\-.\/0123456789:;<=>?\@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]^_`abcdefghijklmnopqrstuvwxyz\{|}~])/sprintf("\\x{%x}",ord($1))/eg;
     }
     downgrade($arg, 1);
     my $suffix = "";
@@ -865,9 +899,6 @@ The Carp routines don't handle exception objects currently.
 If called with a first argument that is a reference, they simply
 call die() or warn(), as appropriate.
 
-Some of the Carp code assumes that Perl's basic character encoding is
-ASCII, and will go wrong on an EBCDIC platform.
-
 =head1 SEE ALSO
 
 L<Carp::Always>,
index 86237cb..8863618 100644 (file)
@@ -2,7 +2,7 @@ package Carp::Heavy;
 
 use Carp ();
 
-our $VERSION = '1.34';
+our $VERSION = '1.35';
 
 # Carp::Heavy was merged into Carp in version 1.12.  Any mismatched versions
 # after this point are not significant and can be ignored.
index 9d598dc..15a2e00 100644 (file)
@@ -9,10 +9,20 @@ sub lmm { Carp::longmess("x") }
 sub lm { lmm() }
 sub rx { qr/$_[0]/ }
 
+# Use full generality on sufficiently recent versions.  On early Perl
+# releases, U+E9 is 0x51 on all EBCDIC code pages supported then.
+my $e9 = sprintf "%02x", (($] ge 5.007_003)
+                          ? utf8::unicode_to_native(0xe9)
+                          : ((ord("A" == 193))
+                             ? 0x51
+                             : 0xE9));
+my $chr_e9 = chr eval "0x$e9";
+my $nl_as_hex = sprintf "%x", ord("\n");
+
 # On Perl 5.6 we accept some incorrect quoting of Unicode characters,
 # because upgradedness of regexps isn't preserved by stringification,
 # so it's impossible to implement the correct behaviour.
-my $xe9_rx = "$]" < 5.008 ? qr/\\x\{c3\}\\x\{a9\}|\\x\{e9\}/ : qr/\\x\{e9\}/;
+my $xe9_rx = "$]" < 5.008 ? qr/\\x\{c3\}\\x\{a9\}|\\x\{e9\}/ : qr/\\x\{$e9\}/;
 my $x666_rx = "$]" < 5.008 ? qr/\\x\{d9\}\\x\{a6\}|\\x\{666\}/ : qr/\\x\{666\}/;
 my $x2603_rx = "$]" < 5.008 ? qr/\\x\{e2\}\\x\{98\}\\x\{83\}|\\x\{2603\}/ : qr/\\x\{2603\}/;
 
@@ -24,17 +34,17 @@ like lm(qr/a.b$/sm), qr/main::lm\(qr\(a\.b\$\)u?ms\)/;
 like lm(qr/foo/), qr/main::lm\(qr\(foo\)u?\)/;
 like lm(qr/a\$b\@c\\d/), qr/main::lm\(qr\(a\\\$b\\\@c\\\\d\)u?\)/;
 like lm(qr/a\nb/), qr/main::lm\(qr\(a\\nb\)u?\)/;
-like lm(rx("a\nb")), qr/main::lm\(qr\(a\\x\{a\}b\)u?\)/;
+like lm(rx("a\nb")), qr/main::lm\(qr\(a\\x\{$nl_as_hex\}b\)u?\)/;
 like lm(qr/a\x{666}b/), qr/main::lm\(qr\(a\\x\{666\}b\)u?\)/;
 like lm(rx("a\x{666}b")), qr/main::lm\(qr\(a${x666_rx}b\)u?\)/;
 like lm(qr/\x{666}b/), qr/main::lm\(qr\(\\x\{666\}b\)u?\)/;
 like lm(rx("\x{666}b")), qr/main::lm\(qr\(${x666_rx}b\)u?\)/;
 like lm(qr/a\x{666}/), qr/main::lm\(qr\(a\\x\{666\}\)u?\)/;
 like lm(rx("a\x{666}")), qr/main::lm\(qr\(a${x666_rx}\)u?\)/;
-like lm(qr/L\xe9on/), qr/main::lm\(qr\(L\\xe9on\)u?\)/;
-like lm(rx("L\xe9on")), qr/main::lm\(qr\(L${xe9_rx}on\)u?\)/;
-like lm(qr/L\xe9on \x{2603} !/), qr/main::lm\(qr\(L\\xe9on \\x\{2603\} !\)u?\)/;
-like lm(rx("L\xe9on \x{2603} !")), qr/main::lm\(qr\(L${xe9_rx}on ${x2603_rx} !\)u?\)/;
+like lm(qr/L${chr_e9}on/), qr/main::lm\(qr\(L\\x\{?${e9}\}?on\)u?\)/;
+like lm(rx("L${chr_e9}on")), qr/main::lm\(qr\(L${xe9_rx}on\)u?\)/;
+like lm(qr/L${chr_e9}on \x{2603} !/), qr/main::lm\(qr\(L\\x\{?${e9}\}?on \\x\{2603\} !\)u?\)/;
+like lm(rx("L${chr_e9}on \x{2603} !")), qr/main::lm\(qr\(L${xe9_rx}on ${x2603_rx} !\)u?\)/;
 
 $Carp::MaxArgLen = 5;
 foreach my $arg ("foo bar baz", "foo bar ba", "foo bar b", "foo bar ", "foo bar", "foo ba") {
@@ -44,10 +54,10 @@ foreach my $arg ("foo b", "foo ", "foo", "fo", "f", "") {
     like lm(rx($arg)), qr/main::lm\(qr\(\Q$arg\E\)u?\)/;
 }
 like lm(qr/foo.bar$/sm), qr/main::lm\(qr\(fo\)\.\.\.u?ms\)/;
-like lm(qr/L\xe9on \x{2603} !/), qr/main::lm\(qr\(L\\\)\.\.\.u?\)/;
-like lm(rx("L\xe9on \x{2603} !")), qr/main::lm\(qr\(L\\\)\.\.\.u?\)/;
-like lm(qr/L\xe9on\x{2603}/), qr/main::lm\(qr\(L\\\)\.\.\.u?\)/;
-like lm(rx("L\xe9on\x{2603}")), qr/main::lm\(qr\(L\\\)\.\.\.u?\)/;
+like lm(qr/L${chr_e9}on \x{2603} !/), qr/main::lm\(qr\(L\\\)\.\.\.u?\)/;
+like lm(rx("L${chr_e9}on \x{2603} !")), qr/main::lm\(qr\(L\\\)\.\.\.u?\)/;
+like lm(qr/L${chr_e9}on\x{2603}/), qr/main::lm\(qr\(L\\\)\.\.\.u?\)/;
+like lm(rx("L${chr_e9}on\x{2603}")), qr/main::lm\(qr\(L\\\)\.\.\.u?\)/;
 like lm(qr/foo\x{2603}/), qr/main::lm\(qr\(fo\)\.\.\.u?\)/;
 like lm(rx("foo\x{2603}")), qr/main::lm\(qr\(fo\)\.\.\.u?\)/;
 
@@ -55,7 +65,7 @@ $Carp::MaxArgLen = 0;
 foreach my $arg ("wibble:" x 20, "foo bar baz") {
     like lm(rx($arg)), qr/main::lm\(qr\(\Q$arg\E\)u?\)/;
 }
-like lm(qr/L\xe9on\x{2603}/), qr/main::lm\(qr\(L\\xe9on\\x\{2603\}\)u?\)/;
-like lm(rx("L\xe9on\x{2603}")), qr/main::lm\(qr\(L${xe9_rx}on${x2603_rx}\)u?\)/;
+like lm(qr/L${chr_e9}on\x{2603}/), qr/main::lm\(qr\(L\\x\{?${e9}\}?on\\x\{2603\}\)u?\)/;
+like lm(rx("L${chr_e9}on\x{2603}")), qr/main::lm\(qr\(L${xe9_rx}on${x2603_rx}\)u?\)/;
 
 1;
index 8a219f1..a6c2749 100644 (file)
@@ -8,6 +8,16 @@ use Carp ();
 sub lmm { Carp::longmess("x") }
 sub lm { lmm() }
 
+# Use full generality on sufficiently recent versions.  On early Perl
+# releases, U+E9 is 0x51 on all EBCDIC code pages supported then.
+my $e9 = sprintf "%02x", (($] ge 5.007_003)
+                          ? utf8::unicode_to_native(0xe9)
+                          : ((ord("A" == 193))
+                             ? 0x51
+                             : 0xE9));
+my $chr_e9 = chr utf8::unicode_to_native(0xe9);
+my $nl_as_hex = sprintf "%x", ord("\n");
+
 like lm(3), qr/main::lm\(3\)/;
 like lm(substr("3\x{2603}", 0, 1)), qr/main::lm\(3\)/;
 like lm(-3), qr/main::lm\(-3\)/;
@@ -16,12 +26,13 @@ like lm(-3.5e100), qr/main::lm\(-3\.5[eE]\+?100\)/;
 like lm(""), qr/main::lm\(""\)/;
 like lm("foo"), qr/main::lm\("foo"\)/;
 like lm("a\$b\@c\\d\"e"), qr/main::lm\("a\\\$b\\\@c\\\\d\\\"e"\)/;
-like lm("a\nb"), qr/main::lm\("a\\x\{a\}b"\)/;
+like lm("a\nb"), qr/main::lm\("a\\x\{$nl_as_hex\}b"\)/;
+
 like lm("a\x{666}b"), qr/main::lm\("a\\x\{666\}b"\)/;
 like lm("\x{666}b"), qr/main::lm\("\\x\{666\}b"\)/;
 like lm("a\x{666}"), qr/main::lm\("a\\x\{666\}"\)/;
-like lm("L\xe9on"), qr/main::lm\("L\\x\{e9\}on"\)/;
-like lm("L\xe9on \x{2603} !"), qr/main::lm\("L\\x\{e9\}on \\x\{2603\} !"\)/;
+like lm("L${chr_e9}on"), qr/main::lm\("L\\x\{$e9\}on"\)/;
+like lm("L${chr_e9}on \x{2603} !"), qr/main::lm\("L\\x\{$e9\}on \\x\{2603\} !"\)/;
 
 $Carp::MaxArgLen = 5;
 foreach my $arg ("foo bar baz", "foo bar ba", "foo bar b", "foo bar ", "foo bar", "foo ba") {
@@ -30,14 +41,14 @@ foreach my $arg ("foo bar baz", "foo bar ba", "foo bar b", "foo bar ", "foo bar"
 foreach my $arg ("foo b", "foo ", "foo", "fo", "f", "") {
     like lm($arg), qr/main::lm\("\Q$arg\E"\)/;
 }
-like lm("L\xe9on \x{2603} !"), qr/main::lm\("L\\x\{e9\}"\.\.\.\)/;
-like lm("L\xe9on\x{2603}"), qr/main::lm\("L\\x\{e9\}on\\x\{2603\}"\)/;
+like lm("L${chr_e9}on \x{2603} !"), qr/main::lm\("L\\x\{$e9\}"\.\.\.\)/;
+like lm("L${chr_e9}on\x{2603}"), qr/main::lm\("L\\x\{$e9\}on\\x\{2603\}"\)/;
 like lm("foo\x{2603}"), qr/main::lm\("foo\\x\{2603\}"\)/;
 
 $Carp::MaxArgLen = 0;
 foreach my $arg ("wibble." x 20, "foo bar baz") {
     like lm($arg), qr/main::lm\("\Q$arg\E"\)/;
 }
-like lm("L\xe9on\x{2603}"), qr/main::lm\("L\\x\{e9\}on\\x\{2603\}"\)/;
+like lm("L${chr_e9}on\x{2603}"), qr/main::lm\("L\\x\{$e9\}on\\x\{2603\}"\)/;
 
 1;
index 1f31922..eca3bb9 100644 (file)
@@ -328,7 +328,7 @@ C<require 5.002>.
 MLDBM example removed (as its own module, it has a separate CPAN 
 reality now).
 
-Fixed bugs in handling keys with wierd characters.  Perl can be
+Fixed bugs in handling keys with weird characters.  Perl can be
 tripped up in its implicit quoting of the word before '=>'.  The
 fix: C<Data::Dumper::Purity>, when set, always triggers quotes
 around hash keys.
index f426f3f..5073be1 100644 (file)
@@ -10,7 +10,7 @@
 package Data::Dumper;
 
 BEGIN {
-    $VERSION = '2.156'; # Don't forget to set version and release
+    $VERSION = '2.157'; # Don't forget to set version and release
 }               # date in POD below!
 
 #$| = 1;
@@ -1419,7 +1419,7 @@ modify it under the same terms as Perl itself.
 
 =head1 VERSION
 
-Version 2.156  (January 20 2014)
+Version 2.157  (January 29 2014)
 
 =head1 SEE ALSO
 
index 70b0c92..98b013b 100644 (file)
@@ -440,7 +440,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
     if (!val)
        return 0;
 
-    /* If the ouput buffer has less than some arbitrary amount of space
+    /* If the output buffer has less than some arbitrary amount of space
        remaining, then enlarge it. For the test case (25M of output),
        *1.1 was slower, *2.0 was the same, so the first guess of 1.5 is
        deemed to be good enough.  */
index fab9a9d..89301c6 100644 (file)
@@ -381,7 +381,7 @@ Revision history for Perl extension ExtUtils::CBuilder.
    somehow never got into this copy. [Steve Hay]
 
  - Added a new 'defines' parameter to compile(), which gives a
-   platform-independant way to specify various -Dfoo=bar (or the
+   platform-independent way to specify various -Dfoo=bar (or the
    equivalent) compiler defines. [Randy W. Sims]
 
 0.14  Mon Sep 19 13:40:37 CDT 2005
index 0202d70..c9c443b 100644 (file)
@@ -210,7 +210,7 @@ if ( $^O eq 'qnx' ) {
 }
 
 ### TEST 15
-### Set up some data to be transfered between the server and
+### Set up some data to be transferred between the server and
 ### the client. We'll use own source code ...
 #
 local @data;
index 0d47f6d..c3e815c 100644 (file)
@@ -1135,7 +1135,7 @@ abc:abc:NaN
 +1:+32:4294967296
 +1:+48:281474976710656
 +8:-2:NaN
-# excercise base 10
+# exercise base 10
 +12345:4:10:123450000
 -1234:0:10:-1234
 +1234:0:10:1234
@@ -1153,7 +1153,7 @@ abc:abc:NaN
 +4294967296:+32:1
 +281474976710656:+48:1
 +2:-2:NaN
-# excercise base 10
+# exercise base 10
 -1234:0:10:-1234
 +1234:0:10:1234
 +200:2:10:2
@@ -1585,7 +1585,7 @@ inf:0:inf,inf
 96969696969696969696969696969678787878626262626262626262626262:484848484848484848484848486666666666666689898989898989898989:199,484848484848484848484848123012121211954972727272727272727451
 # bug in v1.76
 1267650600228229401496703205375:1267650600228229401496703205376:0,1267650600228229401496703205375
-# excercise shortcut for numbers of the same length in div
+# exercise shortcut for numbers of the same length in div
 999999999999999999999999999999999:999999999999999999999999999999999:1,0
 999999999999999999999999999999999:888888888888888888888888888888888:1,111111111111111111111111111111111
 999999999999999999999999999999999:777777777777777777777777777777777:1,222222222222222222222222222222222
index 5516fa7..ef0a6ea 100644 (file)
@@ -567,7 +567,7 @@ abc:abc:NaN
 +1:+32:4294967296
 +1:+48:281474976710656
 +8:-2:NaN
-# excercise base 10
+# exercise base 10
 +12345:4:10:123450000
 -1234:0:10:-1234
 +1234:0:10:1234
index 07fe53a..015be81 100644 (file)
@@ -1,3 +1,9 @@
+5.20150220
+  - Updated for v5.21.9
+
+5.20150214
+  - Updated for v5.20.2
+
 5.20150120
   - Updated for v5.21.8
 
@@ -49,7 +55,7 @@
 3.06 Thu Feb 20 2014
  - updated for 5.19.9
  - fix Module::CoreList::is_core default perl version
- - fix Module::CoreList::is_core version comparision
+ - fix Module::CoreList::is_core version comparison
 
 3.05
   - Prepared for v5.19.9
index e93bac8..47f23d0 100644 (file)
@@ -4,7 +4,7 @@ use vars qw/$VERSION %released %version %families %upstream
            %bug_tracker %deprecated %delta/;
 use Module::CoreList::TieHashDelta;
 use version;
-$VERSION = '5.20150120';
+$VERSION = '5.20150220';
 
 my $dumpinc = 0;
 sub import {
@@ -261,6 +261,8 @@ sub changes_between {
     5.021006 => '2014-11-20',
     5.021007 => '2014-12-20',
     5.021008 => '2015-01-20',
+    5.020002 => '2015-02-14',
+    5.021009 => '2015-02-21',
   );
 
 for my $version ( sort { $a <=> $b } keys %released ) {
@@ -10914,9 +10916,9 @@ for my $version ( sort { $a <=> $b } keys %released ) {
             'IO::Uncompress::RawInflate'=> '2.068',
             'IO::Uncompress::Unzip' => '2.068',
             'MIME::Base64'          => '3.15',
-            'Module::CoreList'      => '5.20150120',
-            'Module::CoreList::TieHashDelta'=> '5.20150120',
-            'Module::CoreList::Utils'=> '5.20150120',
+            'Module::CoreList'      => '5.20150220',
+            'Module::CoreList::TieHashDelta'=> '5.20150220',
+            'Module::CoreList::Utils'=> '5.20150220',
             'Module::Load::Conditional'=> '0.64',
             'Module::Metadata'      => '1.000026',
             'Net::Cmd'              => '3.05',
@@ -11049,6 +11051,141 @@ for my $version ( sort { $a <=> $b } keys %released ) {
         removed => {
         }
     },
+    5.020002 => {
+        delta_from => 5.020001,
+        changed => {
+            'CPAN::Author'          => '5.5002',
+            'CPAN::CacheMgr'        => '5.5002',
+            'CPAN::FTP'             => '5.5006',
+            'CPAN::HTTP::Client'    => '1.9601',
+            'CPAN::HandleConfig'    => '5.5005',
+            'CPAN::Index'           => '1.9601',
+            'CPAN::LWP::UserAgent'  => '1.9601',
+            'CPAN::Mirrors'         => '1.9601',
+            'Config'                => '5.020002',
+            'Cwd'                   => '3.48_01',
+            'Data::Dumper'          => '2.151_01',
+            'Errno'                 => '1.20_05',
+            'File::Spec'            => '3.48_01',
+            'File::Spec::Cygwin'    => '3.48_01',
+            'File::Spec::Epoc'      => '3.48_01',
+            'File::Spec::Functions' => '3.48_01',
+            'File::Spec::Mac'       => '3.48_01',
+            'File::Spec::OS2'       => '3.48_01',
+            'File::Spec::Unix'      => '3.48_01',
+            'File::Spec::VMS'       => '3.48_01',
+            'File::Spec::Win32'     => '3.48_01',
+            'IO::Socket'            => '1.38',
+            'Module::CoreList'      => '5.20150214',
+            'Module::CoreList::TieHashDelta'=> '5.20150214',
+            'Module::CoreList::Utils'=> '5.20150214',
+            'PerlIO::scalar'        => '0.18_01',
+            'Pod::PlainText'        => '2.07',
+            'Storable'              => '2.49_01',
+            'VMS::DCLsym'           => '1.05_01',
+            'VMS::Stdio'            => '2.41',
+            'attributes'            => '0.23',
+            'feature'               => '1.36_01',
+        },
+        removed => {
+        }
+    },
+    5.021009 => {
+        delta_from => 5.021008,
+        changed => {
+            'B'                     => '1.56',
+            'B::Debug'              => '1.23',
+            'B::Deparse'            => '1.33',
+            'B::Op_private'         => '5.021009',
+            'Benchmark'             => '1.20',
+            'CPAN::Author'          => '5.5002',
+            'CPAN::CacheMgr'        => '5.5002',
+            'CPAN::FTP'             => '5.5006',
+            'CPAN::HTTP::Client'    => '1.9601',
+            'CPAN::HandleConfig'    => '5.5005',
+            'CPAN::Index'           => '1.9601',
+            'CPAN::LWP::UserAgent'  => '1.9601',
+            'CPAN::Meta::Requirements'=> '2.132',
+            'CPAN::Mirrors'         => '1.9601',
+            'Carp'                  => '1.35',
+            'Carp::Heavy'           => '1.35',
+            'Config'                => '5.021009',
+            'Config::Perl::V'       => '0.23',
+            'Data::Dumper'          => '2.157',
+            'Devel::Peek'           => '1.22',
+            'DynaLoader'            => '1.31',
+            'Encode'                => '2.70',
+            'Encode::MIME::Header'  => '2.16',
+            'Errno'                 => '1.23',
+            'ExtUtils::Miniperl'    => '1.04',
+            'HTTP::Tiny'            => '0.054',
+            'Module::CoreList'      => '5.20150220',
+            'Module::CoreList::TieHashDelta'=> '5.20150220',
+            'Module::CoreList::Utils'=> '5.20150220',
+            'Opcode'                => '1.32',
+            'POSIX'                 => '1.51',
+            'Perl::OSType'          => '1.008',
+            'PerlIO::scalar'        => '0.22',
+            'Pod::Find'             => '1.63',
+            'Pod::InputObjects'     => '1.63',
+            'Pod::ParseUtils'       => '1.63',
+            'Pod::Parser'           => '1.63',
+            'Pod::Perldoc'          => '3.25',
+            'Pod::Perldoc::BaseTo'  => '3.25',
+            'Pod::Perldoc::GetOptsOO'=> '3.25',
+            'Pod::Perldoc::ToANSI'  => '3.25',
+            'Pod::Perldoc::ToChecker'=> '3.25',
+            'Pod::Perldoc::ToMan'   => '3.25',
+            'Pod::Perldoc::ToNroff' => '3.25',
+            'Pod::Perldoc::ToPod'   => '3.25',
+            'Pod::Perldoc::ToRtf'   => '3.25',
+            'Pod::Perldoc::ToTerm'  => '3.25',
+            'Pod::Perldoc::ToText'  => '3.25',
+            'Pod::Perldoc::ToTk'    => '3.25',
+            'Pod::Perldoc::ToXml'   => '3.25',
+            'Pod::PlainText'        => '2.07',
+            'Pod::Select'           => '1.63',
+            'Socket'                => '2.018',
+            'Storable'              => '2.53',
+            'Test::Builder'         => '1.301001_098',
+            'Test::Builder::Module' => '1.301001_098',
+            'Test::Builder::Tester' => '1.301001_098',
+            'Test::Builder::Tester::Color'=> '1.301001_098',
+            'Test::More'            => '1.301001_098',
+            'Test::Simple'          => '1.301001_098',
+            'Test::Stream'          => '1.301001_098',
+            'Test::Tester'          => '1.301001_098',
+            'Test::use::ok'         => '1.301001_098',
+            'Unicode::Collate'      => '1.11',
+            'Unicode::Collate::CJK::Big5'=> '1.11',
+            'Unicode::Collate::CJK::GB2312'=> '1.11',
+            'Unicode::Collate::CJK::JISX0208'=> '1.11',
+            'Unicode::Collate::CJK::Korean'=> '1.11',
+            'Unicode::Collate::CJK::Pinyin'=> '1.11',
+            'Unicode::Collate::CJK::Stroke'=> '1.11',
+            'Unicode::Collate::CJK::Zhuyin'=> '1.11',
+            'Unicode::Collate::Locale'=> '1.11',
+            'Unicode::UCD'          => '0.61',
+            'VMS::Stdio'            => '2.41',
+            'Win32'                 => '0.51',
+            'Win32API::File'        => '0.1202',
+            'attributes'            => '0.26',
+            'bigint'                => '0.39',
+            'bignum'                => '0.39',
+            'bigrat'                => '0.39',
+            'constant'              => '1.33',
+            'encoding'              => '2.13',
+            'feature'               => '1.40',
+            'ok'                    => '1.301001_098',
+            'overload'              => '1.25',
+            'perlfaq'               => '5.021009',
+            're'                    => '0.31',
+            'threads::shared'       => '1.48',
+            'warnings'              => '1.31',
+        },
+        removed => {
+        }
+    },
 );
 
 sub is_core
@@ -11534,6 +11671,20 @@ for my $version (sort { $a <=> $b } keys %delta) {
         removed => {
         }
     },
+    5.020002 => {
+        delta_from => 5.020001,
+        changed => {
+        },
+        removed => {
+        }
+    },
+    5.021009 => {
+        delta_from => 5.021008,
+        changed => {
+        },
+        removed => {
+        }
+    },
 );
 
 for my $version (sort { $a <=> $b } keys %deprecated) {
@@ -12419,9 +12570,9 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
     'ok'                    => 'http://github.com/Test-More/test-more/issues/',
     'parent'                => undef,
     'perlfaq'               => 'https://github.com/perl-doc-cats/perlfaq/issues',
-    'version'               => 'http://rt.cpan.org/Public/Dist/Display.html?version',
-    'version::regex'        => 'http://rt.cpan.org/Public/Dist/Display.html?version',
-    'version::vpp'          => 'http://rt.cpan.org/Public/Dist/Display.html?version',
+    'version'               => 'https://rt.cpan.org/Public/Dist/Display.html?Name=version',
+    'version::regex'        => 'https://rt.cpan.org/Public/Dist/Display.html?Name=version',
+    'version::vpp'          => 'https://rt.cpan.org/Public/Dist/Display.html?Name=version',
 );
 
 # Create aliases with trailing zeros for $] use
index 187de86..81dc487 100644 (file)
@@ -3,7 +3,7 @@ package Module::CoreList::TieHashDelta;
 use strict;
 use vars qw($VERSION);
 
-$VERSION = '5.20150120';
+$VERSION = '5.20150220';
 
 sub TIEHASH {
     my ($class, $changed, $removed, $parent) = @_;
index 63b704b..e7f61fe 100644 (file)
@@ -6,7 +6,7 @@ use vars qw[$VERSION %utilities];
 use Module::CoreList;
 use Module::CoreList::TieHashDelta;
 
-$VERSION = '5.20150120';
+$VERSION = '5.20150220';
 
 sub utilities {
     my $perl = shift;
@@ -1006,6 +1006,21 @@ my %delta = (
         removed => {
         }
     },
+    5.020002 => {
+        delta_from => 5.020001,
+        changed => {
+        },
+        removed => {
+        }
+    },
+    5.021009 => {
+        delta_from => 5.021008,
+        changed => {
+            'encguess'              => '1',
+        },
+        removed => {
+        }
+    },
 );
 
 for my $version (sort { $a <=> $b } keys %delta) {
index a707195..8c90395 100644 (file)
 
 2.09 Sun Oct  6 14:12:40 CEST 2002
        - Upgraded the Makefile.PL to install Safe.pm to the correct place.
-       - Made it work on 5.6 atleast, maybe even on 5.005?
+       - Made it work on 5.6 at least, maybe even on 5.005?
 
 2.08 Sat Oct  5 18:05:32 CEST 2002
        - First CPAN release, prompted by bug number 17744 on rt.perl.org.
index 4df921e..cbfdbab 100644 (file)
@@ -209,7 +209,7 @@ Fri Jun  7 23:55:41 BST 2002   Nicholas Clark
        The bug was introduced as development perl change 16442 (on
        2002/05/07), so has been present since 2.00.
        Patches to introduce more regression tests to reduce the chance of
-       a reoccurence of this sort of goof are always welcome.
+       a reoccurrence of this sort of goof are always welcome.
        
 Thu May 30 20:31:08 BST 2002   Nicholas Clark <nick@ccl4.org>
 
index f5afada..9d8b621 100644 (file)
@@ -22,7 +22,7 @@ package Storable; @ISA = qw(Exporter);
 
 use vars qw($canonical $forgive_me $VERSION);
 
-$VERSION = '2.52';
+$VERSION = '2.53';
 
 BEGIN {
     if (eval { local $SIG{__DIE__}; require Log::Agent; 1 }) {
index 7d27275..39f3565 100644 (file)
@@ -3720,7 +3720,7 @@ undef_special_case:
  * Write magic number and system information into the file.
  * Layout is <magic> <network> [<len> <byteorder> <sizeof int> <sizeof long>
  * <sizeof ptr>] where <len> is the length of the byteorder hexa string.
- * All size and lenghts are written as single characters here.
+ * All size and lengths are written as single characters here.
  *
  * Note that no byte ordering info is emitted when <network> is true, since
  * integers will be emitted in network order in that case.
index c163ca0..6cebd97 100644 (file)
@@ -234,7 +234,7 @@ use Storable ();
        isa_ok( $thawed->[1], 'My::GoodAttach::MultipleReferences' );
 
        is($thawed->[0], $thawed->[1], 'References to the same object are attached properly');
-       is($thawed->[1]{id}, $obj->{id}, 'Object with multiple references attchached properly');
+       is($thawed->[1]{id}, $obj->{id}, 'Object with multiple references attached properly');
 
     package My::GoodAttach::MultipleReferences;
 
index 0d7bde9..3bcf15a 100644 (file)
@@ -1,7 +1,7 @@
 package bigint;
 use 5.006;
 
-$VERSION = '0.37';
+$VERSION = '0.39';
 use Exporter;
 @ISA           = qw( Exporter );
 @EXPORT_OK     = qw( PI e bpi bexp hex oct );
@@ -607,6 +607,27 @@ This method only works on Perl v5.9.4 or later.
 
 =over 2
 
+=item Operator vs literal overloading
+
+C<bigint> works by overloading handling of integer and floating point
+literals, converting them to L<Math::BigInt> objects.
+
+This means that arithmetic involving only string values or string
+literals will be performed using Perl's built-in operators.
+
+For example:
+
+    use bignum;
+    my $x = "900000000000000009";
+    my $y = "900000000000000007";
+    print $x - $y;
+
+will output C<0> on default 32-bit builds, since C<bigint> never sees
+the string literals.  To ensure the expression is all treated as
+C<Math::BigInt> objects, use a literal number in the expression:
+
+    print +(0+$x) - $y;
+
 =item ranges
 
 Perl does not allow overloading of ranges, so you can neither safely use
index 33150a7..67b9ede 100644 (file)
@@ -1,7 +1,7 @@
 package bignum;
 use 5.006;
 
-$VERSION = '0.38';
+$VERSION = '0.39';
 use Exporter;
 @ISA           = qw( bigint );
 @EXPORT_OK     = qw( PI e bexp bpi hex oct ); 
@@ -572,6 +572,29 @@ minus infinity. You will get '+inf' when dividing a positive number by 0, and
 
 =over 2
 
+=item Operator vs literal overloading
+
+C<bignum> works by overloading handling of integer and floating point
+literals, converting them to L<Math::BigInt> or L<Math::BigFloat>
+objects.
+
+This means that arithmetic involving only string values or string
+literals will be performed using Perl's built-in operators.
+
+For example:
+
+    use bignum;
+    my $x = "900000000000000009";
+    my $y = "900000000000000007";
+    print $x - $y;
+
+will output C<0> on default 32-bit builds, since C<bigrat> never sees
+the string literals.  To ensure the expression is all treated as
+C<Math::BigInt> or C<BigFloat> objects, use a literal number in the
+expression:
+
+    print +(0+$x) - $y;
+
 =item in_effect()
 
 This method only works on Perl v5.9.4 or later.
index 5845523..b02831b 100644 (file)
@@ -1,7 +1,7 @@
 package bigrat;
 use 5.006;
 
-$VERSION = '0.37';
+$VERSION = '0.39';
 require Exporter;
 @ISA           = qw( bigint );
 @EXPORT_OK     = qw( PI e bpi bexp hex oct );
@@ -477,6 +477,29 @@ This prints out the name and version of all modules used and then exits.
 
 =over 2
 
+=item Operator vs literal overloading
+
+C<bigrat> works by overloading handling of integer and floating point
+literals, converting them to L<Math::BigInt> or L<Math::BigRat>
+objects.
+
+This means that arithmetic involving only string values or string
+literals will be performed using Perl's built-in operators.
+
+For example:
+
+    use bigrat;
+    my $x = "900000000000000009";
+    my $y = "900000000000000007";
+    print $x - $y;
+
+will output C<0> on default 32-bit builds, since C<bigrat> never sees
+the string literals.  To ensure the expression is all treated as
+C<Math::BigInt> or C<Math::BigRat> objects, use a literal number in
+the expression:
+
+    print +(0+$x) - $y;
+
 =item in_effect()
 
 This method only works on Perl v5.9.4 or later.
index d03ab5f..e4b8fd2 100644 (file)
@@ -3,8 +3,8 @@ use 5.008;
 use strict;
 use warnings::register;
 
-use vars qw($VERSION %declared);
-$VERSION = '1.32';
+our $VERSION = '1.33';
+our %declared;
 
 #=======================================================================
 
index 304891c..cdb1990 100644 (file)
@@ -7,7 +7,7 @@ use warnings;
 
 use Scalar::Util qw(reftype refaddr blessed);
 
-our $VERSION = '1.47'; # Please update the pod, too.
+our $VERSION = '1.48'; # Please update the pod, too.
 my $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 
@@ -195,7 +195,7 @@ threads::shared - Perl extension for sharing data structures between threads
 
 =head1 VERSION
 
-This document describes threads::shared version 1.47
+This document describes threads::shared version 1.48
 
 =head1 SYNOPSIS
 
index 162a3d7..ee52fa1 100644 (file)
 /*
  * The shared things need an interpreter to live in ...
  */
-PerlInterpreter *PL_sharedsv_space;             /* The shared sv space */
+static PerlInterpreter *PL_sharedsv_space;             /* The shared sv space */
 /* To access shared space we fake aTHX in this scope and thread's context */
 
 /* Bug #24255: We include ENTER+SAVETMPS/FREETMPS+LEAVE with
@@ -177,7 +177,7 @@ typedef struct {
 #endif
 } recursive_lock_t;
 
-recursive_lock_t PL_sharedsv_lock;   /* Mutex protecting the shared sv space */
+static recursive_lock_t PL_sharedsv_lock;   /* Mutex protecting the shared sv space */
 
 void
 recursive_lock_init(pTHX_ recursive_lock_t *lock)
@@ -291,7 +291,7 @@ sharedsv_userlock_free(pTHX_ SV *sv, MAGIC *mg)
     return (0);
 }
 
-MGVTBL sharedsv_userlock_vtbl = {
+static const MGVTBL sharedsv_userlock_vtbl = {
     0,                          /* get */
     0,                          /* set */
     0,                          /* len */
@@ -332,10 +332,10 @@ MGVTBL sharedsv_userlock_vtbl = {
    the shared thing.
  */
 
-extern MGVTBL sharedsv_scalar_vtbl;    /* Scalars have this vtable */
-extern MGVTBL sharedsv_array_vtbl;     /* Hashes and arrays have this
+extern const MGVTBL sharedsv_scalar_vtbl;   /* Scalars have this vtable */
+extern const MGVTBL sharedsv_array_vtbl;     /* Hashes and arrays have this
                                             - like 'tie' */
-extern MGVTBL sharedsv_elem_vtbl;      /* Elements of hashes and arrays have
+extern const MGVTBL sharedsv_elem_vtbl;      /* Elements of hashes and arrays have
                                           this _AS WELL AS_ the scalar magic:
    The sharedsv_elem_vtbl associates the element with the array/hash and
    the sharedsv_scalar_vtbl associates it with the value
@@ -878,7 +878,7 @@ sharedsv_scalar_mg_local(pTHX_ SV* nsv, MAGIC *mg)
 }
 #endif
 
-MGVTBL sharedsv_scalar_vtbl = {
+const MGVTBL sharedsv_scalar_vtbl = {
     sharedsv_scalar_mg_get,     /* get */
     sharedsv_scalar_mg_set,     /* set */
     0,                          /* len */
@@ -1039,7 +1039,7 @@ sharedsv_elem_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAMS *param)
     return (0);
 }
 
-MGVTBL sharedsv_elem_vtbl = {
+const MGVTBL sharedsv_elem_vtbl = {
     sharedsv_elem_mg_FETCH,     /* get */
     sharedsv_elem_mg_STORE,     /* set */
     0,                          /* len */
@@ -1152,7 +1152,7 @@ sharedsv_array_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAMS *param)
     return (0);
 }
 
-MGVTBL sharedsv_array_vtbl = {
+const MGVTBL sharedsv_array_vtbl = {
     0,                          /* get */
     0,                          /* set */
     sharedsv_array_mg_FETCHSIZE,/* len */
index ecefdc6..a2d2206 100644 (file)
@@ -63,7 +63,7 @@ ok(8, threads::shared::_id($$gg) == threads::shared::_id($$gg2),
        sprintf("Check we get the same thing (%x vs %x)",
        threads::shared::_id($$gg),threads::shared::_id($$gg2)));
 ok(9, $$gg eq $$gg2, "And check the values are the same");
-ok(10, keys %foo == 0, "And make sure we realy have deleted the values");
+ok(10, keys %foo == 0, "And make sure we really have deleted the values");
 {
     my (%hash1, %hash2);
     share(%hash1);
index f84452e..778f426 100644 (file)
@@ -38,7 +38,6 @@ sed -e $SARGV -e $SDOTTMP t/io/argv.t >s; mv -f s t/io/argv.t
 sed -e $SABC t/io/inplace.t >s; mv -f s t/io/inplace.t
 sed -e $SDBMX -e $SDBHASH ext/GDBM_File/t/gdbm.t >s; mv -f s ext/GDBM_File/t/gdbm.t
 sed -e $SSTAT -e $STMP2 t/op/stat.t >s; mv -f s t/op/stat.t
-sed -e $SLIST x2p/Makefile.SH |tr -d '\r' >s; mv -f s x2p/Makefile.SH
 #sed -e 's=^#define.\([A-Z]\+\)_EXP.*$=#define \1_EXP djgpp_pathexp("\1")=g' config_h.SH >s; mv -f s config_h.SH
 sed -e 's=:^/:={^([a-z]:)?[\\\\/]}=g' lib/termcap.pl >s; mv -f s lib/termcap.pl
 sed -e $SPACKLIST installman >s; mv -f s installman
diff --git a/doio.c b/doio.c
index b84a14a..a63f2a2 100644 (file)
--- a/doio.c
+++ b/doio.c
@@ -790,7 +790,7 @@ S_openn_cleanup(pTHX_ GV *gv, IO *io, PerlIO *fp, char *mode, const char *oname,
     }
     return TRUE;
 
-say_false:
+  say_false:
     IoIFP(io) = saveifp;
     IoOFP(io) = saveofp;
     IoTYPE(io) = savetype;
@@ -1246,7 +1246,7 @@ Perl_mode_from_discipline(pTHX_ const char *s, STRLEN len)
            }
            else {
                const char *end;
-fail_discipline:
+  fail_discipline:
                end = strchr(s+1, ':');
                if (!end)
                    end = s+len;
diff --git a/doop.c b/doop.c
index 3ed63f6..47fea28 100644 (file)
--- a/doop.c
+++ b/doop.c
@@ -619,18 +619,18 @@ I32
 Perl_do_trans(pTHX_ SV *sv)
 {
     STRLEN len;
-    const I32 hasutf = (PL_op->op_private &
-                    (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF));
+    const I32 flags = PL_op->op_private;
+    const I32 hasutf = flags & (OPpTRANS_FROM_UTF | OPpTRANS_TO_UTF);
 
     PERL_ARGS_ASSERT_DO_TRANS;
 
-    if (SvREADONLY(sv) && !(PL_op->op_private & OPpTRANS_IDENTICAL)) {
-            Perl_croak_no_modify();
+    if (SvREADONLY(sv) && !(flags & OPpTRANS_IDENTICAL)) {
+        Perl_croak_no_modify();
     }
     (void)SvPV_const(sv, len);
     if (!len)
        return 0;
-    if (!(PL_op->op_private & OPpTRANS_IDENTICAL)) {
+    if (!(flags & OPpTRANS_IDENTICAL)) {
        if (!SvPOKp(sv) || SvTHINKFIRST(sv))
            (void)SvPV_force_nomg(sv, len);
        (void)SvPOK_only_UTF8(sv);
@@ -638,27 +638,15 @@ Perl_do_trans(pTHX_ SV *sv)
 
     DEBUG_t( Perl_deb(aTHX_ "2.TBL\n"));
 
-    switch (PL_op->op_private & ~hasutf & (
-               OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF|OPpTRANS_IDENTICAL|
-               OPpTRANS_SQUASH|OPpTRANS_DELETE|OPpTRANS_COMPLEMENT)) {
-    case 0:
-       if (hasutf)
-           return do_trans_simple_utf8(sv);
-       else
-           return do_trans_simple(sv);
-
-    case OPpTRANS_IDENTICAL:
-    case OPpTRANS_IDENTICAL|OPpTRANS_COMPLEMENT:
-       if (hasutf)
-           return do_trans_count_utf8(sv);
-       else
-           return do_trans_count(sv);
-
-    default:
-       if (hasutf)
-           return do_trans_complex_utf8(sv);
-       else
-           return do_trans_complex(sv);
+    /* If we use only OPpTRANS_IDENTICAL to bypass the READONLY check,
+     * we must also rely on it to choose the readonly strategy.
+     */
+    if (flags & OPpTRANS_IDENTICAL) {
+        return hasutf ? do_trans_count_utf8(sv) : do_trans_count(sv);
+    } else if (flags & (OPpTRANS_SQUASH|OPpTRANS_DELETE|OPpTRANS_COMPLEMENT)) {
+        return hasutf ? do_trans_complex_utf8(sv) : do_trans_complex(sv);
+    } else {
+        return hasutf ? do_trans_simple_utf8(sv) : do_trans_simple(sv);
     }
 }
 
@@ -1219,7 +1207,7 @@ Perl_do_vop(pTHX_ I32 optype, SV *sv, SV *left, SV *right)
            break;
        }
     }
-finish:
+  finish:
     SvTAINT(sv);
 }
 
index 16227c1..f993f53 100644 (file)
@@ -267,6 +267,8 @@ S_grok_bslash_x(pTHX_ char **s, UV *uv, const char** error_msg,
             *error_msg = "Number with no digits";
             return FALSE;
         }
+        *s = e + 1;
+        *uv = 0;
         return TRUE;
     }
 
diff --git a/dump.c b/dump.c
index 0ed7962..24ce93e 100644 (file)
--- a/dump.c
+++ b/dump.c
@@ -2327,11 +2327,11 @@ S_append_gv_name(pTHX_ GV *gv, SV *out)
 
 
 /* return a temporary SV containing a stringified representation of
- * the op_aux field of a UNOP_AUX op, associated with CV cv
+ * the op_aux field of a MULTIDEREF op, associated with CV cv
  */
 
 SV*
-Perl_unop_aux_stringify(pTHX_ const OP *o, CV *cv)
+Perl_multideref_stringify(pTHX_ const OP *o, CV *cv)
 {
     UNOP_AUX_item *items = cUNOP_AUXo->op_aux;
     UV actions = items->uv;
@@ -2345,7 +2345,7 @@ Perl_unop_aux_stringify(pTHX_ const OP *o, CV *cv)
     PAD *comppad = PadlistARRAY(padlist)[1];
 #endif
 
-    PERL_ARGS_ASSERT_UNOP_AUX_STRINGIFY;
+    PERL_ARGS_ASSERT_MULTIDEREF_STRINGIFY;
 
     while (!last) {
         switch (actions & MDEREF_ACTION_MASK) {
@@ -2498,7 +2498,7 @@ Perl_debop(pTHX_ const OP *o)
 
     case OP_MULTIDEREF:
         PerlIO_printf(Perl_debug_log, "(%-p)",
-            unop_aux_stringify(o, deb_curcv(cxstack_ix)));
+            multideref_stringify(o, deb_curcv(cxstack_ix)));
         break;
 
     default:
index 6707b2b..26d3511 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
 :
 :         proto.h: add __attribute__malloc__
 :
-:   b  Binary backward compatibility; function is a macro
-:      but has also Perl_ implementation (which is exported); often
-:      implemented in mathoms.c (whose compilation can be suppressed; see
-:      INSTALL):
+:   b  Binary backward compatibility; has an exported Perl_ implementation
+:      but function is also normally a macro (i.e. has the "m" flag as well).
+:      Backcompat functions ("b") can be anywhere, but if they are also
+:      macros ("m") then they have no proto.h entries so must either be in
+:      mathoms.c to get marked EXTERN_C (and skipped for -DNO_MATHOMS builds)
+:      or else will require special attention to ensure they are marked
+:      EXTERN_C (and then won't be automatically skipped for -DNO_MATHOMS
+:      builds).
 :
 :         add entry to the list of exported symbols;
 :         don't define PERL_ARGS_ASSERT_FOO
@@ -330,7 +334,7 @@ ApR |I32    |cxinc
 Afp    |void   |deb            |NN const char* pat|...
 Ap     |void   |vdeb           |NN const char* pat|NULLOK va_list* args
 Ap     |void   |debprofdump
-EXp    |SV*    |unop_aux_stringify     |NN const OP* o|NN CV *cv
+EXp    |SV*    |multideref_stringify   |NN const OP* o|NN CV *cv
 Ap     |I32    |debop          |NN const OP* o
 Ap     |I32    |debstack
 Ap     |I32    |debstackptrs
@@ -809,7 +813,7 @@ EMsPR       |char*|form_short_octal_warning|NN const char * const s  \
                                |const STRLEN len
 #endif
 Apd    |UV     |grok_hex       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
-Apdn   |int    |grok_infnan    |NN const char** sp|NN const char *send
+Apd    |int    |grok_infnan    |NN const char** sp|NN const char *send
 Apd    |int    |grok_number    |NN const char *pv|STRLEN len|NULLOK UV *valuep
 Apd    |int    |grok_number_flags|NN const char *pv|STRLEN len|NULLOK UV *valuep|U32 flags
 ApdR   |bool   |grok_numeric_radix|NN const char **sp|NN const char *send
@@ -1513,7 +1517,6 @@ Ap        |UV     |swash_fetch    |NN SV *swash|NN const U8 *ptr|bool do_utf8
 EiMR   |SV*    |add_cp_to_invlist      |NULLOK SV* invlist|const UV cp
 EsM    |void   |_append_range_to_invlist   |NN SV* const invlist|const UV start|const UV end
 EiMRn  |UV*    |_invlist_array_init    |NN SV* const invlist|const bool will_have_0
-EiMRn  |UV*    |invlist_array  |NN SV* const invlist
 EsM    |void   |invlist_extend    |NN SV* const invlist|const UV len
 EiMRn  |UV     |invlist_max    |NN SV* const invlist
 EiM    |void   |invlist_set_len|NN SV* const invlist|const UV len|const bool offset
@@ -1556,6 +1559,7 @@ EXp       |SV*    |_core_swash_init|NN const char* pkg|NN const char* name \
                |NULLOK SV* invlist|NULLOK U8* const flags_p
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
+EiMRn  |UV*    |invlist_array  |NN SV* const invlist
 EXMpR  |SV*    |_invlist_contents|NN SV* const invlist
 EiMRn  |bool*  |get_invlist_offset_addr|NN SV* invlist
 EiMRn  |UV     |_invlist_len   |NN SV* const invlist
@@ -1788,7 +1792,7 @@ Apdmb     |void   |sv_force_normal|NN SV *sv
 Apd    |void   |sv_force_normal_flags|NN SV *const sv|const U32 flags
 pX     |SSize_t|tmps_grow_p    |SSize_t ix
 Apd    |SV*    |sv_rvweaken    |NN SV *const sv
-ApPMd  |SV*    |sv_get_backrefs|NN SV *const sv
+AnpPMd |SV*    |sv_get_backrefs|NN SV *const sv
 : This is indirectly referenced by globals.c. This is somewhat annoying.
 p      |int    |magic_killbackrefs|NN SV *sv|NN MAGIC *mg
 Ap     |OP*    |newANONATTRSUB |I32 floor|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block
@@ -2026,7 +2030,7 @@ sR        |const char *|get_num   |NN const char *patptr|NN I32 *lenptr
 ns     |bool   |need_utf8      |NN const char *pat|NN const char *patend
 ns     |char   |first_symbol   |NN const char *pat|NN const char *patend
 sR     |char * |sv_exp_grow    |NN SV *sv|STRLEN needed
-snR    |char * |bytes_to_uni   |NN const U8 *start|STRLEN len|NN char *dest \
+snR    |char * |my_bytes_to_utf8|NN const U8 *start|STRLEN len|NN char *dest \
                                |const bool needs_swap
 #endif
 
@@ -2272,6 +2276,33 @@ Es       |void   |to_utf8_substr |NN regexp * prog
 Es     |bool   |to_byte_substr |NN regexp * prog
 ERsn   |I32    |reg_check_named_buff_matched   |NN const regexp *rex \
                                                |NN const regnode *scan
+EsnR   |bool   |isGCB          |const PL_GCB_enum before|const PL_GCB_enum after
+EsR    |bool   |isSB           |PL_SB_enum before                              \
+                               |PL_SB_enum after                               \
+                               |NN const U8 * const strbeg                     \
+                               |NN const U8 * const curpos                     \
+                               |NN const U8 * const strend                     \
+                               |const bool utf8_target
+EsR    |PL_SB_enum|advance_one_SB|NN U8 ** curpos                              \
+                               |NN const U8 * const strend                     \
+                               |const bool utf8_target
+EsR    |PL_SB_enum|backup_one_SB|NN const U8 * const strbeg                    \
+                               |NN U8 ** curpos                                \
+                               |const bool utf8_target
+EsR    |bool   |isWB           |PL_WB_enum previous                            \
+                               |PL_WB_enum before                              \
+                               |PL_WB_enum after                               \
+                               |NN const U8 * const strbeg                     \
+                               |NN const U8 * const curpos                     \
+                               |NN const U8 * const strend                     \
+                               |const bool utf8_target
+EsR    |PL_WB_enum|advance_one_WB|NN U8 ** curpos                              \
+                               |NN const U8 * const strend                     \
+                               |const bool utf8_target
+EsR    |PL_WB_enum|backup_one_WB|NN PL_WB_enum * previous                      \
+                               |NN const U8 * const strbeg                     \
+                               |NN U8 ** curpos                                \
+                               |const bool utf8_target
 #  ifdef DEBUGGING
 Es     |void   |dump_exec_pos  |NN const char *locinput|NN const regnode *scan|NN const char *loc_regeol\
                                |NN const char *loc_bostr|NN const char *loc_reg_starttry|const bool do_utf8
diff --git a/embed.h b/embed.h
index f0ebc96..77b867c 100644 (file)
--- a/embed.h
+++ b/embed.h
 #define grok_atou              Perl_grok_atou
 #define grok_bin(a,b,c,d)      Perl_grok_bin(aTHX_ a,b,c,d)
 #define grok_hex(a,b,c,d)      Perl_grok_hex(aTHX_ a,b,c,d)
-#define grok_infnan            Perl_grok_infnan
+#define grok_infnan(a,b)       Perl_grok_infnan(aTHX_ a,b)
 #define grok_number(a,b,c)     Perl_grok_number(aTHX_ a,b,c)
 #define grok_number_flags(a,b,c,d)     Perl_grok_number_flags(aTHX_ a,b,c,d)
 #define grok_numeric_radix(a,b)        Perl_grok_numeric_radix(aTHX_ a,b)
 #define sv_eq_flags(a,b,c)     Perl_sv_eq_flags(aTHX_ a,b,c)
 #define sv_force_normal_flags(a,b)     Perl_sv_force_normal_flags(aTHX_ a,b)
 #define sv_free(a)             Perl_sv_free(aTHX_ a)
-#define sv_get_backrefs(a)     Perl_sv_get_backrefs(aTHX_ a)
+#define sv_get_backrefs                Perl_sv_get_backrefs
 #define sv_gets(a,b,c)         Perl_sv_gets(aTHX_ a,b,c)
 #define sv_grow(a,b)           Perl_sv_grow(aTHX_ a,b)
 #define sv_inc(a)              Perl_sv_inc(aTHX_ a)
 #define current_re_engine()    Perl_current_re_engine(aTHX)
 #define cv_ckproto_len_flags(a,b,c,d,e)        Perl_cv_ckproto_len_flags(aTHX_ a,b,c,d,e)
 #define mg_find_mglob(a)       Perl_mg_find_mglob(aTHX_ a)
+#define multideref_stringify(a,b)      Perl_multideref_stringify(aTHX_ a,b)
 #define op_clear(a)            Perl_op_clear(aTHX_ a)
 #define qerror(a)              Perl_qerror(aTHX_ a)
 #define reg_named_buff(a,b,c,d)        Perl_reg_named_buff(aTHX_ a,b,c,d)
 #define reg_temp_copy(a,b)     Perl_reg_temp_copy(aTHX_ a,b)
 #define report_uninit(a)       Perl_report_uninit(aTHX_ a)
 #define sv_magicext_mglob(a)   Perl_sv_magicext_mglob(aTHX_ a)
-#define unop_aux_stringify(a,b)        Perl_unop_aux_stringify(aTHX_ a,b)
 #define validate_proto(a,b,c)  Perl_validate_proto(aTHX_ a,b,c)
 #define vivify_defelem(a)      Perl_vivify_defelem(aTHX_ a)
 #define yylex()                        Perl_yylex(aTHX)
 #define get_invlist_iter_addr  S_get_invlist_iter_addr
 #define grok_bslash_N(a,b,c,d,e,f)     S_grok_bslash_N(aTHX_ a,b,c,d,e,f)
 #define handle_regex_sets(a,b,c,d,e)   S_handle_regex_sets(aTHX_ a,b,c,d,e)
-#define invlist_array          S_invlist_array
 #define invlist_clone(a)       S_invlist_clone(aTHX_ a)
 #define invlist_extend(a,b)    S_invlist_extend(aTHX_ a,b)
 #define invlist_highest                S_invlist_highest
 #define _invlist_search                Perl__invlist_search
 #define _swash_inversion_hash(a)       Perl__swash_inversion_hash(aTHX_ a)
 #define get_invlist_offset_addr        S_get_invlist_offset_addr
+#define invlist_array          S_invlist_array
 #  endif
 #  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C) || defined(PERL_IN_TOKE_C)
 #define _core_swash_init(a,b,c,d,e,f,g)        Perl__core_swash_init(aTHX_ a,b,c,d,e,f,g)
 #define _swash_to_invlist(a)   Perl__swash_to_invlist(aTHX_ a)
 #  endif
 #  if defined(PERL_IN_REGEXEC_C)
+#define advance_one_SB(a,b,c)  S_advance_one_SB(aTHX_ a,b,c)
+#define advance_one_WB(a,b,c)  S_advance_one_WB(aTHX_ a,b,c)
+#define backup_one_SB(a,b,c)   S_backup_one_SB(aTHX_ a,b,c)
+#define backup_one_WB(a,b,c,d) S_backup_one_WB(aTHX_ a,b,c,d)
 #define find_byclass(a,b,c,d,e)        S_find_byclass(aTHX_ a,b,c,d,e)
 #define isFOO_lc(a,b)          S_isFOO_lc(aTHX_ a,b)
 #define isFOO_utf8_lc(a,b)     S_isFOO_utf8_lc(aTHX_ a,b)
+#define isGCB                  S_isGCB
+#define isSB(a,b,c,d,e,f)      S_isSB(aTHX_ a,b,c,d,e,f)
+#define isWB(a,b,c,d,e,f,g)    S_isWB(aTHX_ a,b,c,d,e,f,g)
 #define reg_check_named_buff_matched   S_reg_check_named_buff_matched
 #define regcppop(a,b)          S_regcppop(aTHX_ a,b)
 #define regcppush(a,b,c)       S_regcppush(aTHX_ a,b,c)
 #define opmethod_stash(a)      S_opmethod_stash(aTHX_ a)
 #  endif
 #  if defined(PERL_IN_PP_PACK_C)
-#define bytes_to_uni           S_bytes_to_uni
 #define div128(a,b)            S_div128(aTHX_ a,b)
 #define first_symbol           S_first_symbol
 #define get_num(a,b)           S_get_num(aTHX_ a,b)
 #define is_an_int(a,b)         S_is_an_int(aTHX_ a,b)
 #define measure_struct(a)      S_measure_struct(aTHX_ a)
 #define mul128(a,b)            S_mul128(aTHX_ a,b)
+#define my_bytes_to_utf8       S_my_bytes_to_utf8
 #define need_utf8              S_need_utf8
 #define next_symbol(a)         S_next_symbol(aTHX_ a)
 #define pack_rec(a,b,c,d)      S_pack_rec(aTHX_ a,b,c,d)
index da3c331..9ed30e0 100644 (file)
@@ -53,6 +53,7 @@
 #define PL_DBtrace             (vTHX->IDBtrace)
 #define PL_Dir                 (vTHX->IDir)
 #define PL_Env                 (vTHX->IEnv)
+#define PL_GCB_invlist         (vTHX->IGCB_invlist)
 #define PL_HasMultiCharFold    (vTHX->IHasMultiCharFold)
 #define PL_InBitmap            (vTHX->IInBitmap)
 #define PL_LIO                 (vTHX->ILIO)
 #define PL_NonL1NonFinalFold   (vTHX->INonL1NonFinalFold)
 #define PL_Posix_ptrs          (vTHX->IPosix_ptrs)
 #define PL_Proc                        (vTHX->IProc)
+#define PL_SB_invlist          (vTHX->ISB_invlist)
 #define PL_Sock                        (vTHX->ISock)
 #define PL_StdIO               (vTHX->IStdIO)
 #define PL_Sv                  (vTHX->ISv)
 #define PL_UpperLatin1         (vTHX->IUpperLatin1)
+#define PL_WB_invlist          (vTHX->IWB_invlist)
 #define PL_XPosix_ptrs         (vTHX->IXPosix_ptrs)
 #define PL_Xpv                 (vTHX->IXpv)
 #define PL_an                  (vTHX->Ian)
 #define PL_unitcheckav_save    (vTHX->Iunitcheckav_save)
 #define PL_unlockhook          (vTHX->Iunlockhook)
 #define PL_unsafe              (vTHX->Iunsafe)
-#define PL_utf8_X_extend       (vTHX->Iutf8_X_extend)
-#define PL_utf8_X_regular_begin        (vTHX->Iutf8_X_regular_begin)
 #define PL_utf8_charname_begin (vTHX->Iutf8_charname_begin)
 #define PL_utf8_charname_continue      (vTHX->Iutf8_charname_continue)
 #define PL_utf8_foldable       (vTHX->Iutf8_foldable)
index 5cede48..5deaa2c 100644 (file)
@@ -15,7 +15,7 @@ require Exporter;
 # walkoptree comes from B.xs
 
 BEGIN {
-    $B::VERSION = '1.55';
+    $B::VERSION = '1.56';
     @B::EXPORT_OK = ();
 
     # Our BOOT code needs $VERSION set, and will append to @EXPORT_OK.
@@ -1139,6 +1139,11 @@ data structure.  See top of C<op.h> for more info.
 Returns the OP's parent. If it has no parent, or if your perl wasn't built
 with C<-DPERL_OP_PARENT>, returns NULL.
 
+Note that the global variable C<$B::OP::does_parent> is undefined on older
+perls that don't support the C<parent> method, is defined but false on
+perls that support the method but were built without  C<-DPERL_OP_PARENT>,
+and is true otherwise.
+
 =item name
 
 This returns the op name as a string (e.g. "add", "rv2av").
index 72a33ae..41518d8 100644 (file)
@@ -788,6 +788,7 @@ BOOT:
 {
     CV *cv;
     const char *file = __FILE__;
+    SV *sv;
     MY_CXT_INIT;
     B_init_my_cxt(aTHX_ &(MY_CXT));
     cv = newXS("B::init_av", intrpvar_sv_common, file);
@@ -820,6 +821,12 @@ BOOT:
     ASSIGN_COMMON_ALIAS(I, warnhook);
     cv = newXS("B::diehook", intrpvar_sv_common, file);
     ASSIGN_COMMON_ALIAS(I, diehook);
+    sv = get_sv("B::OP::does_parent", GV_ADDMULTI);
+#ifdef PERL_OP_PARENT
+    sv_setsv(sv, &PL_sv_yes);
+#else
+    sv_setsv(sv, &PL_sv_no);
+#endif
 }
 
 #ifndef PL_formfeed
@@ -1359,7 +1366,7 @@ string(o, cv)
     PPCODE:
         switch (o->op_type) {
         case OP_MULTIDEREF:
-            ret = unop_aux_stringify(o, cv);
+            ret = multideref_stringify(o, cv);
             break;
         default:
             ret = sv_2mortal(newSVpvn("", 0));
@@ -1736,13 +1743,13 @@ REGEX(sv)
            PUSHs(newSVpvn_flags(RX_PRECOMP(sv), RX_PRELEN(sv), SVs_TEMP));
        } else if (ix == 2) {
            PUSHs(make_sv_object(aTHX_ (SV *)ReANY(sv)->qr_anoncv));
-       } else if (ix) {
-           dXSTARG;
-           PUSHu(RX_COMPFLAGS(sv));
        } else {
            dXSTARG;
+           if (ix)
+               PUSHu(RX_COMPFLAGS(sv));
+           else
            /* FIXME - can we code this method more efficiently?  */
-           PUSHi(PTR2IV(sv));
+               PUSHi(PTR2IV(sv));
        }
 
 #endif
@@ -2421,7 +2428,7 @@ PadnameFLAGS(pn)
        /* backward-compatibility hack, which should be removed if the
           flags field becomes large enough to hold SVf_FAKE (and
           PADNAMEt_OUTER should be renumbered to match SVf_FAKE) */
-       STATIC_ASSERT_STMT(SVf_FAKE >= 1<<(sizeof(PadnameFLAGS(pn)) * 8));
+       STATIC_ASSERT_STMT(SVf_FAKE >= 1<<(sizeof(PadnameFLAGS((B__PADNAME)NULL)) * 8));
        if (PadnameOUTER(pn))
            RETVAL |= SVf_FAKE;
     OUTPUT:
index eac73ba..a099a97 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 use vars qw($TODO $Level $using_open);
 require "test.pl";
 
-our $VERSION = '0.12';
+our $VERSION = '0.13';
 
 # now export checkOptree, and those test.pl functions used by tests
 our @EXPORT = qw( checkOptree plan skip skip_all pass is like unlike
@@ -652,14 +652,14 @@ sub mkCheckRex {
            : $cmp eq '==' ? $] == $version
            : $cmp eq '>=' ? $] >= $version
            : $cmp eq '>'  ? $] >  $version
-           : die("bad comparision '$cmp' in string [$str]\n")
+           : die("bad comparison '$cmp' in string [$str]\n")
         and !$cmp2 || (
              $cmp2 eq '<'  ? $] <  $v2
            : $cmp2 eq '<=' ? $] <= $v2
            : $cmp2 eq '==' ? $] == $v2
            : $cmp2 eq '>=' ? $] >= $v2
            : $cmp2 eq '>'  ? $] >  $v2
-           : die("bad comparision '$cmp2' in string [$str]\n")
+           : die("bad comparison '$cmp2' in string [$str]\n")
          )
        ) {
            $repl = "$line\n";
index f3adcfc..bbea3cd 100644 (file)
@@ -3,7 +3,7 @@
 
 package Devel::Peek;
 
-$VERSION = '1.21';
+$VERSION = '1.22';
 $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 
index 856ff77..132cad7 100644 (file)
@@ -406,7 +406,7 @@ S_ck_dump(pTHX_ OP *entersubop, GV *namegv, SV *cv)
     return (OP *)newop;
 }
 
-const static XOP my_xop = {
+static const XOP my_xop = {
     XOPf_xop_name|XOPf_xop_desc|XOPf_xop_class,                /* xop_flags */
     "Devel_Peek_Dump",                                 /* xop_name */
     "Dump",                                            /* xop_desc */
index 062aa2e..f5127b6 100644 (file)
@@ -1474,7 +1474,9 @@ for my $test (
    test_DumpProg(@$test);
 }
 
-my $e = <<'EODUMP';
+{
+    local $TODO = 'This gets mangled by the current pipe implementation' if $^O eq 'VMS';
+    my $e = <<'EODUMP';
 dumpindent is 4 at -e line 1.
 {
 1   TYPE = leave  ===> NULL
@@ -1521,13 +1523,13 @@ dumpindent is 4 at -e line 1.
 }
 EODUMP
 
-$e =~ s/GV_OR_PADIX/$threads ? "PADIX = 2" : "GV = t::DumpProg"/e;
-$e =~ s/.*PRIVATE = \(0x1\).*\n// if $] < 5.021004;
-my $out = t::runperl
-             switches => ['-Ilib'],
-             prog => 'package t; use Devel::Peek q-DumpProg-; DumpProg();',
-             stderr=>1;
-$out =~ s/ *SEQ = .*\n//;
-is $out, $e, "DumpProg() has no 'Attempt to free X prematurely' warning";
-
+    $e =~ s/GV_OR_PADIX/$threads ? "PADIX = 2" : "GV = t::DumpProg"/e;
+    $e =~ s/.*PRIVATE = \(0x1\).*\n// if $] < 5.021004;
+    my $out = t::runperl
+                 switches => ['-Ilib'],
+                 prog => 'package t; use Devel::Peek q-DumpProg-; DumpProg();',
+                 stderr=>1;
+    $out =~ s/ *SEQ = .*\n//;
+    is $out, $e, "DumpProg() has no 'Attempt to free X prematurely' warning";
+}
 done_testing();
index c9800b7..c59dd5a 100644 (file)
@@ -85,7 +85,7 @@ package DynaLoader;
 # Tim.Bunce@ig.co.uk, August 1994
 
 BEGIN {
-    $VERSION = '1.30';
+    $VERSION = '1.31';
 }
 
 use Config;
index bc9782c..576b08a 100644 (file)
@@ -371,6 +371,15 @@ CLONE(...)
     MY_CXT.x_dl_last_error = newSVpvs("");
     dl_require_symbols = get_av("DynaLoader::dl_require_symbols", GV_ADDMULTI);
 
+    /* Set up the "static" control blocks for dl_expand_filespec() */
+    dl_fab = cc$rms_fab;
+    dl_nam = cc$rms_nam;
+    dl_fab.fab$l_nam = &dl_nam;
+    dl_nam.nam$l_esa = dl_esa;
+    dl_nam.nam$b_ess = sizeof dl_esa;
+    dl_nam.nam$l_rsa = dl_rsa;
+    dl_nam.nam$b_rss = sizeof dl_rsa;
+
 #endif
 
 # end.
index 3dadfce..c6bfa06 100644 (file)
@@ -2,7 +2,7 @@ use ExtUtils::MakeMaker;
 use Config;
 use strict;
 
-our $VERSION = "1.22";
+our $VERSION = "1.23";
 
 my %err = ();
 
@@ -215,20 +215,31 @@ sub write_errno_pm {
     {  # BeOS (support now removed) did not enter this block
     # invoke CPP and read the output
 
+       my $inhibit_linemarkers = '';
+       if ($Config{gccversion} =~ /\A(\d+)\./ and $1 >= 5) {
+           # GCC 5.0 interleaves expanded macros with line numbers breaking
+           # each line into multiple lines. RT#123784
+           $inhibit_linemarkers = ' -P';
+       }
+
        if ($^O eq 'VMS') {
-           my $cpp = "$Config{cppstdin} $Config{cppflags} $Config{cppminus}";
+           my $cpp = "$Config{cppstdin} $Config{cppflags}" .
+               $inhibit_linemarkers . " $Config{cppminus}";
            $cpp =~ s/sys\$input//i;
            open(CPPO,"$cpp  errno.c |") or
                die "Cannot exec $Config{cppstdin}";
        } elsif ($IsMSWin32 || $^O eq 'NetWare') {
-           open(CPPO,"$Config{cpprun} $Config{cppflags} errno.c |") or
-               die "Cannot run '$Config{cpprun} $Config{cppflags} errno.c'";
+           my $cpp = "$Config{cpprun} $Config{cppflags}" .
+               $inhibit_linemarkers;
+           open(CPPO,"$cpp errno.c |") or
+               die "Cannot run '$cpp errno.c'";
        } elsif ($IsSymbian) {
-            my $cpp = "gcc -E -I$ENV{SDK}\\epoc32\\include\\libc -";
+            my $cpp = "gcc -E -I$ENV{SDK}\\epoc32\\include\\libc" .
+               $inhibit_linemarkers ." -";
            open(CPPO,"$cpp < errno.c |")
                or die "Cannot exec $cpp";
         } else {
-           my $cpp = default_cpp();
+           my $cpp = default_cpp() . $inhibit_linemarkers;
            open(CPPO,"$cpp < errno.c |")
                or die "Cannot exec $cpp";
        }
index 5cf6252..8dd0f28 100644 (file)
@@ -8,7 +8,7 @@ use vars qw($VERSION @ISA @EXPORT);
 
 @ISA = qw(Exporter);
 @EXPORT = qw(writemain);
-$VERSION = '1.03';
+$VERSION = '1.04';
 
 # blead will run this with miniperl, hence we can't use autodie or File::Temp
 my $temp;
@@ -234,8 +234,9 @@ C<writemain()> takes an argument list of directories containing archive
 libraries that relate to perl modules and should be linked into a new
 perl binary. It writes a corresponding F<perlmain.c> file that
 is a plain C file containing all the bootstrap code to make the
+modules associated with the libraries available from within perl.
 If the first argument to C<writemain()> is a reference to a scalar it is
-used as the filename to open for ouput. Any other reference is used as
+used as the filename to open for output. Any other reference is used as
 the filehandle to write to. Otherwise output defaults to C<STDOUT>.
 
 The typical usage is from within a Makefile generated by
index 600b87a..49a0f9e 100644 (file)
@@ -28,7 +28,7 @@ is ($_, $expected, 'test if $_ takes as the default');
 cmp_ok(@r, '>=', 9) or diag("|@r|");
 
 @r = <*/a*.t>;
-# atleast {argv,abbrev,anydbm,autoloader,append,arith,array,assignwarn,auto}.t
+# at least {argv,abbrev,anydbm,autoloader,append,arith,array,assignwarn,auto}.t
 cmp_ok(@r, '>=', 9, 'check <*/*>') or diag("|@r|");
 my $r = scalar @r;
 
index b2a75d3..c9a3f15 100644 (file)
@@ -6,7 +6,7 @@ use strict;
 
 our($VERSION, @ISA, @EXPORT_OK);
 
-$VERSION = "1.31";
+$VERSION = "1.32";
 
 use Carp;
 use Exporter ();
@@ -318,8 +318,9 @@ invert_opset function.
     postdec i_postdec int hex oct abs pow multiply i_multiply
     divide i_divide modulo i_modulo add i_add subtract i_subtract
 
-    left_shift right_shift bit_and bit_xor bit_or negate i_negate
-    not complement
+    left_shift right_shift bit_and bit_xor bit_or nbit_and
+    nbit_xor nbit_or sbit_and sbit_xor sbit_or negate i_negate not
+    complement ncomplement scomplement
 
     lt i_lt gt i_gt le i_le ge i_ge eq i_eq ne i_ne ncmp i_ncmp
     slt sgt sle sge seq sne scmp
index 3b6d275..c1170e9 100644 (file)
@@ -13,7 +13,9 @@ typedef struct {
     HV *       x_op_named_bits;        /* cache shared for whole process */
     SV *       x_opset_all;            /* mask with all bits set       */
     IV         x_opset_len;            /* length of opmasks in bytes   */
-    int                x_opcode_debug;
+#if 0
+    int                x_opcode_debug;         /* unused warn() emitting debugging code */
+#endif
 } my_cxt_t;
 
 START_MY_CXT
@@ -21,7 +23,12 @@ START_MY_CXT
 #define op_named_bits          (MY_CXT.x_op_named_bits)
 #define opset_all              (MY_CXT.x_opset_all)
 #define opset_len              (MY_CXT.x_opset_len)
-#define opcode_debug           (MY_CXT.x_opcode_debug)
+#if 0
+#  define opcode_debug         (MY_CXT.x_opcode_debug)
+#else
+ /* no API to turn this on at runtime, so constant fold the code away */
+#  define opcode_debug         0
+#endif
 
 static SV  *new_opset (pTHX_ SV *old_opset);
 static int  verify_opset (pTHX_ SV *opset, int fatal);
index 261fa34..b1118bd 100644 (file)
 
 #else
 
+#  ifdef USE_LONG_DOUBLE
+#    undef M_E
+#    undef M_LOG2E
+#    undef M_LOG10E
+#    undef M_LN2
+#    undef M_LN10
+#    undef M_PI
+#    undef M_PI_2
+#    undef M_PI_4
+#    undef M_1_PI
+#    undef M_2_PI
+#    undef M_2_SQRTPI
+#    undef M_SQRT2
+#    undef M_SQRT1_2
+#    define FLOAT_C(c) CAT2(c,L)
+#  else
+#    define FLOAT_C(c) (c)
+#  endif
+
 #  ifndef M_E
-#    define M_E                2.71828182845904523536028747135266250
+#    define M_E                FLOAT_C(2.71828182845904523536028747135266250)
 #  endif
 #  ifndef M_LOG2E
-#    define M_LOG2E    1.44269504088896340735992468100189214
+#    define M_LOG2E    FLOAT_C(1.44269504088896340735992468100189214)
 #  endif
 #  ifndef M_LOG10E
-#    define M_LOG10E   0.434294481903251827651128918916605082
+#    define M_LOG10E   FLOAT_C(0.434294481903251827651128918916605082)
 #  endif
 #  ifndef M_LN2
-#    define M_LN2      0.693147180559945309417232121458176568
+#    define M_LN2      FLOAT_C(0.693147180559945309417232121458176568)
 #  endif
 #  ifndef M_LN10
-#    define M_LN10     2.30258509299404568401799145468436421
+#    define M_LN10     FLOAT_C(2.30258509299404568401799145468436421)
 #  endif
 #  ifndef M_PI
-#    define M_PI       3.14159265358979323846264338327950288
+#    define M_PI       FLOAT_C(3.14159265358979323846264338327950288)
 #  endif
 #  ifndef M_PI_2
-#    define M_PI_2     1.57079632679489661923132169163975144
+#    define M_PI_2     FLOAT_C(1.57079632679489661923132169163975144)
 #  endif
 #  ifndef M_PI_4
-#    define M_PI_4     0.785398163397448309615660845819875721
+#    define M_PI_4     FLOAT_C(0.785398163397448309615660845819875721)
 #  endif
 #  ifndef M_1_PI
-#    define M_1_PI     0.318309886183790671537767526745028724
+#    define M_1_PI     FLOAT_C(0.318309886183790671537767526745028724)
 #  endif
 #  ifndef M_2_PI
-#    define M_2_PI     0.636619772367581343075535053490057448
+#    define M_2_PI     FLOAT_C(0.636619772367581343075535053490057448)
 #  endif
 #  ifndef M_2_SQRTPI
-#    define M_2_SQRTPI 1.12837916709551257389615890312154517
+#    define M_2_SQRTPI FLOAT_C(1.12837916709551257389615890312154517)
 #  endif
 #  ifndef M_SQRT2
-#    define M_SQRT2    1.41421356237309504880168872420969808
+#    define M_SQRT2    FLOAT_C(1.41421356237309504880168872420969808)
 #  endif
 #  ifndef M_SQRT1_2
-#    define M_SQRT1_2  0.707106781186547524400844362104849039
+#    define M_SQRT1_2  FLOAT_C(0.707106781186547524400844362104849039)
 #  endif
 
 #endif
 #  define c99_log1p    log1pl
 #  define c99_log2     log2l
 #  define c99_logb     logbl
-#  if defined(USE_64_BIT_INT) && QUADKIND == QUAD_IS_LONG_LONG
-#   define c99_lrint   llrintl
-#  else
+#  if defined(USE_64_BIT_INT) && QUADKIND == QUAD_IS_LONG_LONG && defined(HAS_LLRINTL)
+#    define c99_lrint  llrintl
+#  elif defined(HAS_LRINTL)
 #    define c99_lrint  lrintl
 #  endif
-#  if defined(USE_64_BIT_INT) && QUADKIND == QUAD_IS_LONG_LONG
+#  if defined(USE_64_BIT_INT) && QUADKIND == QUAD_IS_LONG_LONG && defined(HAS_LLROUNDL)
 #    define c99_lround llroundl
-#  else
+#  elif defined(HAS_LROUNDL)
 #    define c99_lround lroundl
 #  endif
 #  define c99_nan      nanl
 #  define c99_trunc    trunc
 #endif
 
+/* AIX xlc (__IBMC__) really doesn't have the following long double
+ * math interfaces (no __acoshl128 aka acoshl, etc.), see
+ * hints/aix.sh.  These are in the -lc128 but fail to be found
+ * during dynamic linking/loading.
+ *
+ * XXX1 Better Configure scans
+ * XXX2 Is this xlc version dependent? */
+#if defined(USE_LONG_DOUBLE) && defined(__IBMC__)
+#  undef c99_acosh
+#  undef c99_asinh
+#  undef c99_atanh
+#  undef c99_cbrt
+#  undef c99_copysign
+#  undef c99_exp2
+#  undef c99_expm1
+#  undef c99_fdim
+#  undef c99_fma
+#  undef c99_fmax
+#  undef c99_fmin
+#  undef c99_hypot
+#  undef c99_ilogb
+#  undef c99_lrint
+#  undef c99_lround
+#  undef c99_log1p
+#  undef c99_log2
+#  undef c99_logb
+#  undef c99_nan
+#  undef c99_nearbyint
+#  undef c99_nextafter
+#  undef c99_nexttoward
+#  undef c99_remainder
+#  undef c99_remquo
+#  undef c99_rint
+#  undef c99_round
+#  undef c99_scalbn
+#  undef c99_tgamma
+#  undef c99_trunc
+#endif
+
 #ifndef isunordered
 #  ifdef Perl_isnan
 #    define isunordered(x, y) (Perl_isnan(x) || Perl_isnan(y))
@@ -740,16 +798,18 @@ static IV my_ilogb(NV x)
 /* Note that the tgamma() and lgamma() implementations
  * here depend on each other. */
 
-#ifndef HAS_TGAMMA
+#if !defined(HAS_TGAMMA) || !defined(c99_tgamma)
 static NV my_tgamma(NV x);
 #  define c99_tgamma my_tgamma
+#  define USE_MY_TGAMMA
 #endif
-#ifndef HAS_LGAMMA
+#if !defined(HAS_LGAMMA) || !defined(c99_lgamma)
 static NV my_lgamma(NV x);
 #  define c99_lgamma my_lgamma
+#  define USE_MY_LGAMMA
 #endif
 
-#ifndef HAS_TGAMMA
+#ifdef USE_MY_TGAMMA
 static NV my_tgamma(NV x)
 {
   const NV gamma = 0.577215664901532860606512090; /* Euler's gamma constant. */
@@ -843,7 +903,7 @@ static NV my_tgamma(NV x)
 }
 #endif
 
-#ifndef HAS_LGAMMA
+#ifdef USE_MY_LGAMMA
 static NV my_lgamma(NV x)
 {
   if (Perl_isnan(x))
index 793fdd4..a825178 100644 (file)
@@ -4,7 +4,7 @@ use warnings;
 
 our ($AUTOLOAD, %SIGRT);
 
-our $VERSION = '1.49';
+our $VERSION = '1.51';
 
 require XSLoader;
 
index 03f60b2..89ee946 100644 (file)
@@ -1,5 +1,5 @@
 package PerlIO::scalar;
-our $VERSION = '0.21';
+our $VERSION = '0.22';
 require XSLoader;
 XSLoader::load();
 1;
index 7f429d5..eec2de9 100644 (file)
@@ -211,6 +211,21 @@ PerlIOScalar_write(pTHX_ PerlIO * f, const void *vbuf, Size_t count)
        }
        else {
            STRLEN const cur = SvCUR(sv);
+
+            /* ensure we don't try to create ridiculously large
+             * SVs on small platforms
+             */
+#if SSize_t_size < Off_t_size
+            if (s->posn > SSize_t_MAX) {
+#ifdef EFBIG
+                SETERRNO(EFBIG, SS_BUFFEROVF);
+#else
+                SETERRNO(ENOSPC, SS_BUFFEROVF);
+#endif
+                return 0;
+            }
+#endif
+
            if ((STRLEN)s->posn > cur) {
                dst = SvGROW(sv, (STRLEN)s->posn + count + 1);
                Zero(SvPVX(sv) + cur, (STRLEN)s->posn - cur, char);
index f4cfbef..3dfcced 100644 (file)
@@ -16,7 +16,7 @@ use Fcntl qw(SEEK_SET SEEK_CUR SEEK_END); # Not 0, 1, 2 everywhere.
 
 $| = 1;
 
-use Test::More tests => 120;
+use Test::More tests => 122;
 
 my $fh;
 my $var = "aaa\n";
@@ -510,3 +510,14 @@ SKIP:
     ok(!seek($fh, -10, SEEK_CUR), "seek to negative position");
     is(tell($fh), 0, "shouldn't change the position");
 }
+
+SKIP:
+{ # write() beyond SSize_t limit
+    skip "Can't overflow SSize_t with Off_t", 2
+      if $Config::Config{lseeksize} <= $Config::Config{sizesize};
+    my $buf0 = "hello";
+    open my $fh, "+<", \$buf0 or die $!;
+    ok(seek($fh, 2**32, SEEK_SET), "seek to a large position");
+    select((select($fh), ++$|)[0]);
+    ok(!(print $fh "x"), "write to a large offset");
+}
index 53da93a..6758202 100644 (file)
@@ -29,18 +29,18 @@ is( $pkg_ref, $exp_ref, '%Pod::Functions::Type_Description exported' );
 is( $pkg_ref, $exp_ref, '@Pod::Functions::Type_Order exported' );
 
 # Check @Type_Order
-my @catagories = qw(
+my @categories = qw(
     String  Regexp  Math   ARRAY  LIST      HASH    I/O
     Binary  File    Flow   Namespace Misc    Process
     Modules Objects Socket SysV   User      Network Time
 );
 
-ok( eq_array( \@Type_Order, \@catagories ),
+ok( eq_array( \@Type_Order, \@categories ),
     '@Type_Order' );
 
 my @cat_keys = grep exists $Type_Description{ $_ } => @Type_Order;
 
-ok( eq_array( \@cat_keys, \@catagories ),
+ok( eq_array( \@cat_keys, \@categories ),
     'keys() %Type_Description' );
 
 SKIP: {
index f6dddf1..21ee0f4 100644 (file)
@@ -10,7 +10,7 @@ L<htmllink/section 2>
 
 L</"item1">
 
-L</"non existant section">
+L</"non existent section">
 
 L<var-copy>
 
index 30fa6d3..bc033c4 100644 (file)
@@ -66,7 +66,7 @@ __DATA__
 
 <p><a href="#item1">&quot;item1&quot;</a></p>
 
-<p><a href="#non-existant-section">&quot;non existant section&quot;</a></p>
+<p><a href="#non-existent-section">&quot;non existent section&quot;</a></p>
 
 <p><a href="/[RELCURRENTWORKINGDIRECTORY]/testdir/test.lib/var-copy.html">var-copy</a></p>
 
index 536cfbb..70eae7e 100644 (file)
@@ -62,7 +62,7 @@ __DATA__
 
 <p><a href="#item1">&quot;item1&quot;</a></p>
 
-<p><a href="#non-existant-section">&quot;non existant section&quot;</a></p>
+<p><a href="#non-existent-section">&quot;non existent section&quot;</a></p>
 
 <p><a href="../testdir/test.lib/var-copy.html">var-copy</a></p>
 
index ab8f055..cfa0abc 100644 (file)
@@ -62,7 +62,7 @@ __DATA__
 
 <p><a href="#item1">&quot;item1&quot;</a></p>
 
-<p><a href="#non-existant-section">&quot;non existant section&quot;</a></p>
+<p><a href="#non-existent-section">&quot;non existent section&quot;</a></p>
 
 <p><a href="[ABSCURRENTWORKINGDIRECTORY]/testdir/test.lib/var-copy.html">var-copy</a></p>
 
index 550cf32..ebee26e 100644 (file)
@@ -3,13 +3,15 @@ use ExtUtils::MakeMaker;
 
 my $define = '-DSDBM -DDUFF';
 
+my $dirfext = $^O eq 'VMS' ? '.sdbm_dir' : '.dir';
+
 WriteMakefile(
     NAME      => 'SDBM_File',
     VERSION_FROM => 'SDBM_File.pm',
     DEFINE    => $define,
     INC       => '-I$(PERL_INC)', # force PERL_INC dir ahead of system -I's
     OBJECT    => '$(O_FILES)',
-    clean     => {'FILES' => 'dbu dbd dba dbe x-dbu *.dir *.pag'},
+    clean     => {'FILES' => "dbu dbd dba dbe x-dbu *${dirfext} *.pag"},
     H         => [qw(tune.h sdbm.h pair.h $(PERL_INC)/config.h)],
     C         => [qw(SDBM_File.c sdbm.c pair.c hash.c)],
 );
index 2ada7a1..e7cf730 100644 (file)
@@ -51,7 +51,7 @@ typedef struct {
        int dsize;
 } datum;
 
-EXTCONST datum nullitem
+extern const datum nullitem
 #ifdef DOINIT
                         = {0, 0}
 #endif
index 1b8a4f7..4d05994 100644 (file)
@@ -13,7 +13,7 @@ use Carp '&croak';
 use DynaLoader ();
 use Exporter ();
  
-$VERSION = '2.4';
+$VERSION = '2.41';
 @ISA = qw( Exporter DynaLoader IO::File );
 @EXPORT = qw( &O_APPEND &O_CREAT &O_EXCL  &O_NDELAY &O_NOWAIT
               &O_RDONLY &O_RDWR  &O_TRUNC &O_WRONLY );
index 64104d3..524cf3f 100644 (file)
@@ -47,6 +47,8 @@ XS_EXTERNAL(boot_Win32CORE)
      * should never be called though, as Win32CORE.pm doesn't use DynaLoader.
      */
 }
+
+EXTERN_C
 #if !defined(__CYGWIN__) || defined(USEIMPORTLIB)
 __declspec(dllexport)
 #endif
index e6093f2..f66717b 100644 (file)
@@ -93,14 +93,14 @@ my @groks =
    [ "Inf",  0,                  undef,
      IS_NUMBER_INFINITY | IS_NUMBER_NOT_INT ],
    [ "In",   0,                  undef, 0 ],
-   [ "Infin",0,                  undef, 0 ],
+   [ "Infin",0,                  undef, IS_NUMBER_INFINITY | IS_NUMBER_NOT_INT | IS_NUMBER_TRAILING ],
    # this doesn't work and hasn't been needed yet
    #[ "Infin",PERL_SCAN_TRAILING, undef,
    #  IS_NUMBER_INFINITY | IS_NUMBER_NOT_INT | IS_NUMBER_TRAILING ],
    [ "nan",  0,                  undef, IS_NUMBER_NAN | IS_NUMBER_NOT_INT ],
    # even without PERL_SCAN_TRAILING nan can have weird stuff trailing
-   [ "nanx", 0,                  undef, IS_NUMBER_NAN | IS_NUMBER_NOT_INT ],
-   [ "nanx", PERL_SCAN_TRAILING, undef, IS_NUMBER_NAN | IS_NUMBER_NOT_INT ],
+   [ "nanx", 0,                  undef, IS_NUMBER_NAN | IS_NUMBER_NOT_INT | IS_NUMBER_TRAILING ],
+   [ "nanx", PERL_SCAN_TRAILING, undef, IS_NUMBER_NAN | IS_NUMBER_NOT_INT | IS_NUMBER_TRAILING ],
   );
 
 for my $grok (@groks) {
index f96f62e..85d993d 100644 (file)
@@ -24,7 +24,7 @@ use XS::APItest;
 }
 
 # [perl #78070]
-# multicall using a sub that aleady has CvDEPTH > 1 caused sub
+# multicall using a sub that already has CvDEPTH > 1 caused sub
 # to be prematurely freed
 
 {
index b3f38d8..f7919be 100644 (file)
@@ -127,15 +127,15 @@ STATIC void ptable_split(pPTBLMS_ ptable * const t) {
  t->ary = ary;
 
  for (i = 0; i < oldsize; i++, ary++) {
-  ptable_ent **curentp, **entp, *ent;
+  ptable_ent **currentp, **entp, *ent;
   if (!*ary)
    continue;
-  curentp = ary + oldsize;
+  currentp = ary + oldsize;
   for (entp = ary, ent = *ary; ent; ent = *entp) {
    if ((newsize & PTABLE_HASH(ent->key)) != i) {
     *entp     = ent->next;
-    ent->next = *curentp;
-    *curentp  = ent;
+    ent->next = *currentp;
+    *currentp  = ent;
     continue;
    } else
     entp = &ent->next;
index 062cd77..74cfc63 100644 (file)
@@ -1,6 +1,6 @@
 package attributes;
 
-our $VERSION = 0.25;
+our $VERSION = 0.26;
 
 @EXPORT_OK = qw(get reftype);
 @EXPORT = ();
index b1dd60f..9c9ec11 100644 (file)
@@ -48,7 +48,7 @@ modify_SV_attributes(pTHX_ SV *sv, SV **retlist, SV **attrlist, int numattrs)
                    if (negated)
                        CvANONCONST_off(sv);
                    else {
-                       const bool warn = (!CvCLONE(sv) || CvCLONED(sv))
+                       const bool warn = (!CvANON(sv) || CvCLONED(sv))
                                       && !CvANONCONST(sv);
                        CvANONCONST_on(sv);
                        if (warn)
index 5ddaa21..92ddaf5 100644 (file)
@@ -4,7 +4,7 @@ package re;
 use strict;
 use warnings;
 
-our $VERSION     = "0.30";
+our $VERSION     = "0.31";
 our @ISA         = qw(Exporter);
 our @EXPORT_OK   = ('regmust',
                     qw(is_regexp regexp_pattern
@@ -111,7 +111,17 @@ sub _load_unload {
 sub bits {
     my $on = shift;
     my $bits = 0;
+    my $turning_all_off = ! @_ && ! $on;
     my %seen;   # Has flag already been seen?
+    if ($turning_all_off) {
+
+        # Pretend were called with certain parameters, which are best dealt
+        # with that way.
+        push @_, keys %bitmask; # taint and eval
+        push @_, 'strict';
+    }
+
+    # Process each subpragma parameter
    ARG:
     foreach my $idx (0..$#_){
         my $s=$_[$idx];
@@ -156,7 +166,7 @@ sub bits {
                 }
             }
             else {
-                $^H{reflags} &= ~$reflags{$s};
+                $^H{reflags} &= ~$reflags{$s} if $^H{reflags};
 
                 # Turn off warnings if we turned them on.
                 warnings->unimport('regexp') if $^H{re_strict};
@@ -211,8 +221,8 @@ sub bits {
                    }
                    else {
                        delete $^H{reflags_charset}
-                        if  defined $^H{reflags_charset}
-                         && $^H{reflags_charset} == $reflags{$_};
+                                     if defined $^H{reflags_charset}
+                                        && $^H{reflags_charset} == $reflags{$_};
                    }
                } elsif (exists $reflags{$_}) {
                     $seen{$_}++;
@@ -228,8 +238,8 @@ sub bits {
                }
            }
            ($^H{reflags} = $reflags or defined $^H{reflags_charset})
-            ? $^H |= $flags_hint
-            : ($^H &= ~$flags_hint);
+                           ? $^H |= $flags_hint
+                           : ($^H &= ~$flags_hint);
        } else {
            require Carp;
            Carp::carp("Unknown \"re\" subpragma '$s' (known ones are: ",
@@ -249,6 +259,14 @@ sub bits {
             warnings::warn("regexp", $message);
         }
     }
+
+    if ($turning_all_off) {
+        _load_unload(0);
+        $^H{reflags} = 0;
+        $^H{reflags_charset} = 0;
+        $^H &= ~$flags_hint;
+    }
+
     $bits;
 }
 
index 3ec7455..0e74bf0 100644 (file)
@@ -1,6 +1,6 @@
 use re 'debug';
 
-$_ = 'foo bar baz bop fip fop';
+$_ = 'foo bar baz bop boq bor fip fop';
 
 /foo/ and $count++;
 
@@ -14,6 +14,13 @@ $_ = 'foo bar baz bop fip fop';
     /bop/ and $count++;
 }
 
+{
+    use re 'debug';
+    /boq/ and $count++;
+    no re;
+    /bor/ and $count++;
+}
+
 /fip/ and $count++;
 
 no re 'debug';
index d4b7e62..b2570f0 100644 (file)
@@ -15,7 +15,7 @@ use strict;
 BEGIN { require "../../t/test.pl"; }
 my $out = runperl(progfile => "t/lexical_debug.pl", stderr => 1 );
 
-print "1..10\n";
+print "1..12\n";
 
 # Each pattern will produce an EXACT node with a specific string in 
 # it, so we will look for that. We can't just look for the string
@@ -25,11 +25,13 @@ ok( $out =~ /EXACT <foo>/, "Expect 'foo'"    );
 ok( $out !~ /EXACT <bar>/, "No 'bar'"        );
 ok( $out =~ /EXACT <baz>/, "Expect 'baz'"    );
 ok( $out !~ /EXACT <bop>/, "No 'bop'"        );
+ok( $out =~ /EXACT <boq>/, "Expect 'boq'"    );
+ok( $out !~ /EXACT <bor>/, "No 'bor'"        );
 ok( $out =~ /EXACT <fip>/, "Expect 'fip'"    );
 ok( $out !~ /EXACT <fop>/, "No 'baz'"        );
 ok( $out =~ /<liz>/,       "Got 'liz'"       ); # in a TRIE so no EXACT
 ok( $out =~ /<zoo>/,       "Got 'zoo'"       ); # in a TRIE so no EXACT
 ok( $out =~ /<zap>/,       "Got 'zap'"       ); # in a TRIE so no EXACT
-ok( $out =~ /Count=7\n/,   "Count is 7") 
+ok( $out =~ /Count=9\n/,   "Count is 9")
     or diag($out);
 
index 13498bb..353ff81 100644 (file)
@@ -10,6 +10,9 @@ BEGIN {
 
 use strict;
 
+my $re_taint_bit = 0x00100000;
+my $re_eval_bit = 0x00200000;
+
 use Test::More tests => 15;
 require_ok( 're' );
 
@@ -42,20 +45,20 @@ isnt( $ENV{PERL_RE_COLORS}, '',
 re::bits(0, 'nosuchsubpragma');
 like( $warn, qr/Unknown "re" subpragma/, 
        '... should warn about unknown subpragma' );
-ok( re::bits(0, 'taint') & 0x00100000, '... should set taint bits' );
-ok( re::bits(0, 'eval')  & 0x00200000, '... should set eval bits' );
+ok( re::bits(0, 'taint') & $re_taint_bit, '... should set taint bits' );
+ok( re::bits(0, 'eval')  & $re_eval_bit, '... should set eval bits' );
 
 local $^H;
 
 # import
 re->import('taint', 'eval');
-ok( $^H & 0x00100000, 'import should set taint bits in $^H when requested' );
-ok( $^H & 0x00200000, 'import should set eval bits in $^H when requested' );
+ok( $^H & $re_taint_bit, 'import should set taint bits in $^H when requested' );
+ok( $^H & $re_eval_bit, 'import should set eval bits in $^H when requested' );
 
 re->unimport('taint');
-ok( !( $^H & 0x00100000 ), 'unimport should clear bits in $^H when requested' );
+ok( !( $^H & $re_taint_bit ), 'unimport should clear bits in $^H when requested' );
 re->unimport('eval');
-ok( !( $^H & 0x00200000 ), '... and again' );
+ok( !( $^H & $re_eval_bit ), '... and again' );
 my $reg=qr/(foo|bar|baz|blah)/;
 close STDERR;
 eval"use re Debug=>'ALL'";
index e90a712..03c35a0 100644 (file)
@@ -10,7 +10,7 @@ BEGIN {
 
 use strict;
 
-use Test::More tests => 63;
+use Test::More tests => 67;
 
 my @flags = qw( a d l u );
 
@@ -53,6 +53,18 @@ no re '/sm';
 ok 'f r e l p' =~ /f r e l p/,
  "use re '/x' turns off when it drops out of scope";
 
+{
+  use re '/i';
+  ok "Foo" =~ /foo/, 'use re "/i"';
+  no re;
+  ok "Foo" !~ /foo/, "bare 'no re' reverts to no /i";
+  use re '/u';
+  my $nbsp = chr utf8::unicode_to_native(0xa0);
+  ok $nbsp =~ /\s/, 'nbsp matches \\s under /u';
+  no re;
+  ok $nbsp !~ /\s/, "bare 'no re' reverts to /d";
+}
+
 SKIP: {
   if (
       !$Config::Config{d_setlocale}
index dd9c811..6cafabb 100644 (file)
@@ -12,7 +12,7 @@ BEGIN {
 
 use strict;
 
-use Test::More tests => 9;
+use Test::More tests => 10;
 BEGIN { require_ok( 're' ); }
 
 {
@@ -29,6 +29,13 @@ BEGIN { require_ok( 're' ); }
         qr/\b*/;
 
         BEGIN { is(scalar @w, 1, 'use re "strict" turns on warnings'); }
+
+        BEGIN { undef @w; }
+
+        no re 'strict';
+        qr/\b*/;
+
+        BEGIN { is(scalar @w, 0, 'no re "strict" restores warnings state'); }
     }
 
     BEGIN {undef @w; }
index 370896e..ba796eb 100644 (file)
--- a/feature.h
+++ b/feature.h
         FEATURE_IS_ENABLED("switch")) \
     )
 
+#define FEATURE_BITWISE_IS_ENABLED \
+    ( \
+       CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
+        FEATURE_IS_ENABLED("bitwise") \
+    )
+
 #define FEATURE_EVALBYTES_IS_ENABLED \
     ( \
        CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_515 \
diff --git a/gv.c b/gv.c
index 6801816..41cebeb 100644 (file)
--- a/gv.c
+++ b/gv.c
@@ -39,7 +39,7 @@ Perl stores its global variables.
 #include "feature.h"
 
 static const char S_autoload[] = "AUTOLOAD";
-static const STRLEN S_autolen = sizeof(S_autoload)-1;
+#define S_autolen (sizeof("AUTOLOAD")-1)
 
 GV *
 Perl_gv_add_by_type(pTHX_ GV *gv, svtype type)
@@ -2842,7 +2842,9 @@ Perl_try_amagic_un(pTHX_ int method, int flags) {
     SvGETMAGIC(arg);
 
     if (SvAMAGIC(arg) && (tmpsv = amagic_call(arg, &PL_sv_undef, method,
-                                             AMGf_noright | AMGf_unary))) {
+                                             AMGf_noright | AMGf_unary
+                                           | (flags & AMGf_numarg))))
+    {
        if (flags & AMGf_set) {
            SETs(tmpsv);
        }
@@ -2887,7 +2889,8 @@ Perl_try_amagic_bin(pTHX_ int method, int flags) {
 
     if (SvAMAGIC(left) || SvAMAGIC(right)) {
        SV * const tmpsv = amagic_call(left, right, method,
-                   ((flags & AMGf_assign) && opASSIGN ? AMGf_assign: 0));
+                   ((flags & AMGf_assign) && opASSIGN ? AMGf_assign: 0)
+                 | (flags & AMGf_numarg));
        if (tmpsv) {
            if (flags & AMGf_set) {
                (void)POPs;
@@ -3266,6 +3269,9 @@ Perl_amagic_call(pTHX_ SV *left, SV *right, int method, int flags)
     case band_amg:
     case bor_amg:
     case bxor_amg:
+    case sband_amg:
+    case sbor_amg:
+    case sbxor_amg:
       if (assign)
         force_scalar = 1;
       break;
@@ -3392,6 +3398,10 @@ Perl_amagic_call(pTHX_ SV *left, SV *right, int method, int flags)
       PUSHs(newSVpvn_flags(AMG_id2name(method + assignshift),
                           AMG_id2namelen(method + assignshift), SVs_TEMP));
     }
+    else if (flags & AMGf_numarg)
+      PUSHs(&PL_sv_undef);
+    if (flags & AMGf_numarg)
+      PUSHs(&PL_sv_yes);
     PUSHs(MUTABLE_SV(cv));
     PUTBACK;
     oldmark = TOPMARK;
diff --git a/handy.h b/handy.h
index 1256ea1..faa9f7a 100644 (file)
--- a/handy.h
+++ b/handy.h
@@ -1020,6 +1020,7 @@ static const char* const swash_property_names[] = {
 };
 #endif
 
+START_EXTERN_C
 #  ifdef DOINIT
 EXTCONST  U32 PL_charclass[] = {
 #    include "l1_char_class_tab.h"
@@ -1028,6 +1029,7 @@ EXTCONST  U32 PL_charclass[] = {
 #  else /* ! DOINIT */
 EXTCONST U32 PL_charclass[];
 #  endif
+END_EXTERN_C
 
     /* The 1U keeps Solaris from griping when shifting sets the uppermost bit */
 #   define _CC_mask(classnum) (1U << (classnum))
index a9b6caf..d475f11 100644 (file)
 # mkdir -p /opt/perl-catamount
 # mkdir -p /opt/perl-catamount/include
 # mkdir -p /opt/perl-catamount/lib
-# mkdir -p /opt/perl-catamount/lib/perl5/5.21.8
+# mkdir -p /opt/perl-catamount/lib/perl5/5.21.9
 # mkdir -p /opt/perl-catamount/bin
 # cp *.h /opt/perl-catamount/include
 # cp libperl.a /opt/perl-catamount/lib
-# cp -pr lib/* /opt/perl-catamount/lib/perl5/5.21.8
+# cp -pr lib/* /opt/perl-catamount/lib/perl5/5.21.9
 # cp miniperl perl run.sh cc.sh /opt/perl-catamount/lib
 #
 # With the headers and the libperl.a you can embed Perl to your Catamount
index 453f30f..6c1d8f0 100644 (file)
@@ -167,7 +167,7 @@ esac
 
 #
 # Note that Makefile.SH employs a bare yacc command to generate 
-# perly.[hc] and a2p.[hc], hence you may wish to:
+# perly.[hc], hence you may wish to:
 #
 #    alias yacc='myyacc'
 #
index 57f4d14..2f700d5 100644 (file)
@@ -90,7 +90,7 @@ END
 `
 
 case "$cc" in
-'')    for i in `ls -r /opt/solstudio*/bin/cc` /opt/SUNWspro/bin/cc
+'')    for i in `ls -r /opt/sol*studio*/bin/cc` /opt/SUNWspro/bin/cc
        do
               if test -f "$i"; then
                       cc=$i
diff --git a/hv.c b/hv.c
index d5db46f..5195ca2 100644 (file)
--- a/hv.c
+++ b/hv.c
@@ -1290,7 +1290,7 @@ S_hsplit(pTHX_ HV *hv, STRLEN const oldsize, STRLEN newsize)
             dest->xhv_fill_lazy = 0;
         } else {
             /* no existing aux structure, but we allocated space for one
-             * so intialize it properly. This unrolls hv_auxinit() a bit,
+             * so initialize it properly. This unrolls hv_auxinit() a bit,
              * since we have to do the realloc anyway. */
             /* first we set the iterator's xhv_rand so it can be copied into lastrand below */
 #ifdef PERL_HASH_RANDOMIZE_KEYS
index 1875a05..1589f95 100644 (file)
@@ -56,6 +56,27 @@ S__invlist_contains_cp(SV* const invlist, const UV cp)
     return index >= 0 && ELEMENT_RANGE_MATCHES_INVLIST(index);
 }
 
+PERL_STATIC_INLINE UV*
+S_invlist_array(SV* const invlist)
+{
+    /* Returns the pointer to the inversion list's array.  Every time the
+     * length changes, this needs to be called in case malloc or realloc moved
+     * it */
+
+    PERL_ARGS_ASSERT_INVLIST_ARRAY;
+
+    /* Must not be empty.  If these fail, you probably didn't check for <len>
+     * being non-zero before trying to get the array */
+    assert(_invlist_len(invlist));
+
+    /* The very first element always contains zero, The array begins either
+     * there, or if the inversion list is offset, at the element after it.
+     * The offset header field determines which; it contains 0 or 1 to indicate
+     * how much additionally to add */
+    assert(0 == *(SvPVX(invlist)));
+    return ((UV *) SvPVX(invlist) + *get_invlist_offset_addr(invlist));
+}
+
 #   if defined(PERL_IN_UTF8_C) || defined(PERL_IN_REGEXEC_C)
 
 /* These symbols are only needed later in regcomp.c */
index 3f83909..66b7161 100755 (executable)
@@ -83,7 +83,7 @@ while (<$fh>) {
     next if /^#/;
     chomp;
     my ($path, $leaf) = m|^(\S*/(\S+))|;
-    # Have we already installed the manpage for this? (eg perldoc, a2p)
+    # Have we already installed the manpage for this? (eg perldoc)
     next if $man1{$leaf};
     pod2man({$leaf, $path}, $opts{man1dir}, $opts{man1ext});
     if ($has_man1dir) {
index eb96283..0093056 100644 (file)
@@ -179,7 +179,7 @@ PERLVAR(I, statgv,  GV *)
 PERLVARI(I, statname,  SV *,   NULL)
 
 #ifdef HAS_TIMES
-/* Will be removed soon after v5.21.8. See RT #121351 */
+/* Will be removed soon after v5.21.9. See RT #121351 */
 PERLVAR(I, timesbuf,   struct tms)
 #endif
 
@@ -598,8 +598,6 @@ PERLVAR(I, HasMultiCharFold,   SV *)
 
 /* utf8 character class swashes */
 PERLVAR(I, utf8_mark,  SV *)
-PERLVAR(I, utf8_X_regular_begin, SV *)
-PERLVAR(I, utf8_X_extend, SV *)
 PERLVAR(I, utf8_toupper, SV *)
 PERLVAR(I, utf8_totitle, SV *)
 PERLVAR(I, utf8_tolower, SV *)
@@ -610,6 +608,9 @@ PERLVAR(I, utf8_charname_continue, SV *)
 PERLVARA(I, utf8_swash_ptrs, POSIX_SWASH_COUNT, SV *)
 PERLVARA(I, Posix_ptrs, POSIX_CC_COUNT, SV *)
 PERLVARA(I, XPosix_ptrs, POSIX_CC_COUNT, SV *)
+PERLVAR(I, GCB_invlist, SV *)
+PERLVAR(I, SB_invlist, SV *)
+PERLVAR(I, WB_invlist, SV *)
 
 PERLVAR(I, last_swash_hv, HV *)
 PERLVAR(I, last_swash_tmps, U8 *)
@@ -750,7 +751,7 @@ PERLVARI(I, globhook,       globhook_t, NULL)
 
 PERLVARI(I, padlist_generation, U32, 1)        /* id to identify padlist clones */
 
-/* The last unconditional member of the interpreter structure when 5.21.8 was
+/* The last unconditional member of the interpreter structure when 5.21.9 was
    released. The offset of the end of this is baked into a global variable in 
    any shared perl library which will allow a sanity test in future perl
    releases.  */
index 9604ad4..39999b0 100644 (file)
@@ -318,7 +318,9 @@ struct IPerlStdIOInfo
 #if defined(__VMS)
      /* Unusual definition of ungetc() here to accommodate fast_sv_gets()'
       * belief that it can mix getc/ungetc with reads from stdio buffer */
+START_EXTERN_C
      int decc$ungetc(int __c, FILE *__stream);
+END_EXTERN_C
 #    define PerlSIO_ungetc(c,f) ((c) == EOF ? EOF : \
             ((*(f) && !((*(f))->_flag & _IONBF) && \
             ((*(f))->_ptr > (*(f))->_base)) ? \
index 740192d..c998989 100644 (file)
@@ -46,7 +46,7 @@ use B qw(class main_root main_start main_cv svref_2object opnumber perlstring
         MDEREF_SHIFT
     );
 
-$VERSION = '1.32';
+$VERSION = '1.33';
 use strict;
 use vars qw/$AUTOLOAD/;
 use warnings ();
@@ -743,7 +743,7 @@ sub stash_subs {
            if ($class eq "CV") {
                $self->todo($referent, 0);
            } elsif (
-               $class !~ /^(AV|HV|CV|FM|IO)\z/
+               $class !~ /^(AV|HV|CV|FM|IO|SPECIAL)\z/
                # A more robust way to write that would be this, but B does
                # not provide the SVt_ constants:
                # ($referent->FLAGS & B::SVTYPEMASK) < B::SVt_PVAV
@@ -1160,6 +1160,7 @@ sub pad_subs {
     my @names = $padlist->ARRAYelt(0)->ARRAY;
     my @values = $padlist->ARRAYelt(1)->ARRAY;
     my @todo;
+  PADENTRY:
     for my $ix (0.. $#names) { for $_ ($names[$ix]) {
        next if class($_) eq "SPECIAL";
        my $name = $_->PVX;
@@ -1176,6 +1177,23 @@ sub pad_subs {
            my $protocv = $flags & SVpad_STATE
                ? $values[$ix]
                : $_->PROTOCV;
+           if (class ($protocv) ne 'CV') {
+               my $flags = $flags;
+               my $cv = $cv;
+               my $name = $_;
+               while ($flags & PADNAMEt_OUTER && class ($protocv) ne 'CV')
+               {
+                   $cv = $cv->OUTSIDE;
+                   next PADENTRY if class($cv) eq 'SPECIAL'; # XXX freed?
+                   my $padlist = $cv->PADLIST;
+                   my $ix = $name->PARENT_PAD_INDEX;
+                   $name = $padlist->NAMES->ARRAYelt($ix);
+                   $flags = $name->FLAGS;
+                   $protocv = $flags & SVpad_STATE
+                       ? $padlist->ARRAYelt(1)->ARRAYelt($ix)
+                       : $name->PROTOCV;
+               }
+           }
            my $defined_in_this_sub = ${$protocv->OUTSIDE} == $$cv || do {
                my $other = $protocv->PADLIST;
                $$other && $other->outid == $padlist->id;
@@ -2258,6 +2276,8 @@ sub pp_i_predec { pfixop(@_, "--", 23) }
 sub pp_i_postinc { maybe_targmy(@_, \&pfixop, "++", 23, POSTFIX) }
 sub pp_i_postdec { maybe_targmy(@_, \&pfixop, "--", 23, POSTFIX) }
 sub pp_complement { maybe_targmy(@_, \&pfixop, "~", 21) }
+*pp_ncomplement = *pp_complement;
+sub pp_scomplement { maybe_targmy(@_, \&pfixop, "~.", 21) }
 
 sub pp_negate { maybe_targmy(@_, \&real_negate) }
 sub real_negate {
@@ -2763,8 +2783,10 @@ BEGIN {
             'subtract' => 18, 'i_subtract' => 18,
             'concat' => 18,
             'left_shift' => 17, 'right_shift' => 17,
-            'bit_and' => 13,
+            'bit_and' => 13, 'nbit_and' => 13, 'sbit_and' => 13,
             'bit_or' => 12, 'bit_xor' => 12,
+            'sbit_or' => 12, 'sbit_xor' => 12,
+            'nbit_or' => 12, 'nbit_xor' => 12,
             'and' => 3,
             'or' => 2, 'xor' => 2,
            );
@@ -2796,8 +2818,9 @@ BEGIN {
              'subtract=' => 7, 'i_subtract=' => 7,
              'concat=' => 7,
              'left_shift=' => 7, 'right_shift=' => 7,
-             'bit_and=' => 7,
-             'bit_or=' => 7, 'bit_xor=' => 7,
+             'bit_and=' => 7, 'sbit_and=' => 7, 'nbit_and=' => 7,
+             'nbit_or=' => 7, 'nbit_xor=' => 7,
+             'sbit_or=' => 7, 'sbit_xor=' => 7,
              'andassign' => 7,
              'orassign' => 7,
             );
@@ -2860,6 +2883,12 @@ sub pp_right_shift { maybe_targmy(@_, \&binop, ">>", 17, ASSIGN) }
 sub pp_bit_and { maybe_targmy(@_, \&binop, "&", 13, ASSIGN) }
 sub pp_bit_or { maybe_targmy(@_, \&binop, "|", 12, ASSIGN) }
 sub pp_bit_xor { maybe_targmy(@_, \&binop, "^", 12, ASSIGN) }
+*pp_nbit_and = *pp_bit_and;
+*pp_nbit_or  = *pp_bit_or;
+*pp_nbit_xor = *pp_bit_xor;
+sub pp_sbit_and { maybe_targmy(@_, \&binop, "&.", 13, ASSIGN) }
+sub pp_sbit_or { maybe_targmy(@_, \&binop, "|.", 12, ASSIGN) }
+sub pp_sbit_xor { maybe_targmy(@_, \&binop, "^.", 12, ASSIGN) }
 
 sub pp_eq { binop(@_, "==", 14) }
 sub pp_ne { binop(@_, "!=", 14) }
@@ -4358,8 +4387,8 @@ sub retscalar {
                  |divide|i_divide|modulo|i_modulo|add|i_add|subtract
                  |i_subtract|concat|stringify|left_shift|right_shift|lt
                  |i_lt|gt|i_gt|le|i_le|ge|i_ge|eq|i_eq|ne|i_ne|ncmp|i_ncmp
-                 |slt|sgt|sle|sge|seq|sne|scmp|bit_and|bit_xor|bit_or
-                 |negate|i_negate|not|complement|smartmatch|atan2|sin|cos
+                 |slt|sgt|sle|sge|seq|sne|scmp|[sn]?bit_(?:and|x?or)|negate
+                 |i_negate|not|[sn]?complement|smartmatch|atan2|sin|cos
                  |rand|srand|exp|log|sqrt|int|hex|oct|abs|length|substr
                  |vec|index|rindex|sprintf|formline|ord|chr|crypt|ucfirst
                  |lcfirst|uc|lc|quotemeta|aelemfast|aelem|exists|helem
@@ -4784,16 +4813,17 @@ sub const {
        return $str;
     } elsif ($sv->FLAGS & SVf_ROK && $sv->can("RV")) {
        my $ref = $sv->RV;
-       if (class($ref) eq "AV") {
+       my $class = class($ref);
+       if ($class eq "AV") {
            return "[" . $self->list_const(2, $ref->ARRAY) . "]";
-       } elsif (class($ref) eq "HV") {
+       } elsif ($class eq "HV") {
            my %hash = $ref->ARRAY;
            my @elts;
            for my $k (sort keys %hash) {
                push @elts, "$k => " . $self->const($hash{$k}, 6);
            }
            return "{" . join(", ", @elts) . "}";
-       } elsif (class($ref) eq "CV") {
+       } elsif ($class eq "CV") {
            BEGIN {
                if ($] > 5.0150051) {
                    require overloading;
@@ -4806,7 +4836,7 @@ sub const {
            }
            return "sub " . $self->deparse_sub($ref);
        }
-       if ($ref->FLAGS & SVs_SMG) {
+       if ($class ne 'SPECIAL' and $ref->FLAGS & SVs_SMG) {
            for (my $mg = $ref->MAGIC; $mg; $mg = $mg->MOREMAGIC) {
                if ($mg->TYPE eq 'r') {
                    my $re = re_uninterp(escape_re(re_unback($mg->precomp)));
index b91598b..f536284 100644 (file)
@@ -13,7 +13,7 @@ BEGIN {
 use warnings;
 use strict;
 
-my $tests = 44; # not counting those in the __DATA__ section
+my $tests = 46; # not counting those in the __DATA__ section
 
 use B::Deparse;
 my $deparse = B::Deparse->new();
@@ -501,6 +501,17 @@ like runperl(stderr => 1, switches => [ '-MO=-qq,Deparse', $path ],
      qr/^sub foo \{\s+foo\(\)/m,
     'recursive sub';
 
+like runperl(stderr => 1, switches => [ '-MO=-qq,Deparse', $path ],
+             prog => 'use feature lexical_subs=>state=>;
+                      state sub sb5; sub { sub sb5 { } }'),
+     qr/sub \{\s*\(\);\s*sub sb5 \{/m,
+    'state sub in anon sub but declared outside';
+
+is runperl(stderr => 1, switches => [ '-MO=-qq,Deparse', $path ],
+             prog => 'BEGIN { $::{f}=\!0 }'),
+   "sub BEGIN {\n    \$main::{'f'} = \\1;\n}\n",
+   '&PL_sv_yes constant (used to croak)';
+
 is runperl(stderr => 1, switches => [ '-MO=-qq,Deparse', $path, '-T' ],
            prog => '$x =~ (1?/$a/:0)'),
   '$x =~ ($_ =~ /$a/);'."\n",
@@ -1857,12 +1868,12 @@ my sub f {}
 print f();
 >>>>
 use feature 'lexical_subs';
-BEGIN {${^WARNING_BITS} = "\x54\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x54\x55\x54\x55\x50\x15"}
+BEGIN {${^WARNING_BITS} = "\x54\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x54\x55\x55\x55\x55\x01"}
 my sub f {
-    BEGIN {${^WARNING_BITS} = "\x54\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x54\x55\x54\x55\x10"}
+    BEGIN {${^WARNING_BITS} = "\x54\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x54\x55\x55\x55\x01"}
     
 }
-BEGIN {${^WARNING_BITS} = "\x54\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x54\x55\x54\x55\x10"}
+BEGIN {${^WARNING_BITS} = "\x54\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x54\x55\x55\x55\x01"}
 print f();
 ####
 # SKIP ?$] < 5.017004 && "lexical subs not implemented on this Perl version"
@@ -1873,13 +1884,13 @@ state sub f {}
 print f();
 >>>>
 use feature 'lexical_subs';
-BEGIN {${^WARNING_BITS} = "\x54\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x54\x55\x54\x55\x50\x15"}
+BEGIN {${^WARNING_BITS} = "\x54\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x54\x55\x55\x55\x55\x01"}
 CORE::state sub f {
-    BEGIN {${^WARNING_BITS} = "\x54\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x54\x55\x54\x55\x10"}
+    BEGIN {${^WARNING_BITS} = "\x54\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x54\x55\x55\x55\x01"}
     use feature 'state';
     
 }
-BEGIN {${^WARNING_BITS} = "\x54\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x54\x55\x54\x55\x10"}
+BEGIN {${^WARNING_BITS} = "\x54\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x54\x55\x55\x55\x01"}
 use feature 'state';
 print f();
 ####
@@ -1920,6 +1931,21 @@ my sub g {
     sub f { }
 }
 ####
+# TODO only partially fixed
+# lexical state subroutine with outer declaration and inner definition
+# CONTEXT use feature 'lexical_subs', 'state'; no warnings 'experimental::lexical_subs';
+();
+state sub sb4;
+state sub a {
+    ();
+    sub sb4 { }
+}
+state sub sb5;
+sub {
+    ();
+    sub sb5 { }
+} ;
+####
 # Elements of %# should not be confused with $#{ array }
 () = ${#}{'foo'};
 ####
@@ -2366,3 +2392,20 @@ my $x = $h{'foo'}[$i + $j]{$k};
 chdir 'file';
 chdir FH;
 chdir;
+####
+# 5.22 bitops
+# CONTEXT use feature "bitwise"; no warnings "experimental::bitwise";
+$_ = $_ | $_;
+$_ = $_ & $_;
+$_ = $_ ^ $_;
+$_ = ~$_;
+$_ = $_ |. $_;
+$_ = $_ &. $_;
+$_ = $_ ^. $_;
+$_ = ~.$_;
+$_ |= $_;
+$_ &= $_;
+$_ ^= $_;
+$_ |.= $_;
+$_ &.= $_;
+$_ ^.= $_;
index 9a48b96..e1cc2ce 100644 (file)
@@ -118,7 +118,7 @@ package B::Op_private;
 our %bits;
 
 
-our $VERSION = "5.021008";
+our $VERSION = "5.021009";
 
 $bits{$_}{3} = 'OPpENTERSUB_AMPER' for qw(entersub rv2cv);
 $bits{$_}{6} = 'OPpENTERSUB_DB' for qw(entersub rv2cv);
@@ -150,7 +150,7 @@ $bits{$_}{7} = 'OPpPV_IS_UTF8' for qw(dump goto last next redo);
 $bits{$_}{6} = 'OPpREFCOUNTED' for qw(leave leaveeval leavesub leavesublv leavewrite);
 $bits{$_}{6} = 'OPpRUNTIME' for qw(match pushre qr subst substcont);
 $bits{$_}{2} = 'OPpSLICEWARNING' for qw(aslice hslice padav padhv rv2av rv2hv);
-$bits{$_}{4} = 'OPpTARGET_MY' for qw(abs add atan2 chdir chmod chomp chown chr chroot complement concat cos crypt divide exec exp flock getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_ncmp i_subtract index int kill left_shift length link log match mkdir modulo multiply oct ord pow push rand rename repeat right_shift rindex rmdir schomp scmp setpgrp setpriority sin sleep split sqrt srand stringify subst subtract symlink system time trans transr unlink unshift utime vec wait waitpid);
+$bits{$_}{4} = 'OPpTARGET_MY' for qw(abs add atan2 chdir chmod chomp chown chr chroot complement concat cos crypt divide exec exp flock getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_ncmp i_subtract index int kill left_shift length link log match mkdir modulo multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push rand rename repeat right_shift rindex rmdir schomp scmp scomplement setpgrp setpriority sin sleep split sqrt srand stringify subst subtract symlink system time trans transr unlink unshift utime vec wait waitpid);
 $bits{$_}{5} = 'OPpTRANS_COMPLEMENT' for qw(trans transr);
 $bits{$_}{7} = 'OPpTRANS_DELETE' for qw(trans transr);
 $bits{$_}{0} = 'OPpTRANS_FROM_UTF' for qw(trans transr);
@@ -349,6 +349,7 @@ $bits{gpbyname}{0} = $bf[0];
 @{$bits{gpbynumber}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
 $bits{gpwnam}{0} = $bf[0];
 $bits{gpwuid}{0} = $bf[0];
+$bits{grepstart}{0} = $bf[0];
 $bits{grepwhile}{0} = $bf[0];
 @{$bits{gsbyname}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
 @{$bits{gsbyport}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
@@ -404,6 +405,7 @@ $bits{lstat}{0} = $bf[0];
 @{$bits{lt}}{1,0} = ($bf[1], $bf[1]);
 $bits{lvavref}{0} = $bf[0];
 @{$bits{lvref}}{5,4,0} = ($bf[7], $bf[7], $bf[0]);
+$bits{mapstart}{0} = $bf[0];
 $bits{mapwhile}{0} = $bf[0];
 $bits{method}{0} = $bf[0];
 $bits{method_named}{0} = $bf[0];
@@ -418,7 +420,11 @@ $bits{method_super}{0} = $bf[0];
 @{$bits{msgsnd}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
 @{$bits{multideref}}{5,4,0} = ('OPpMULTIDEREF_DELETE', 'OPpMULTIDEREF_EXISTS', $bf[0]);
 @{$bits{multiply}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{nbit_and}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{nbit_or}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{nbit_xor}}{1,0} = ($bf[1], $bf[1]);
 @{$bits{ncmp}}{1,0} = ($bf[1], $bf[1]);
+$bits{ncomplement}{0} = $bf[0];
 @{$bits{ne}}{1,0} = ($bf[1], $bf[1]);
 $bits{negate}{0} = $bf[0];
 $bits{next}{0} = $bf[0];
@@ -476,10 +482,14 @@ $bits{rv2hv}{0} = $bf[0];
 @{$bits{rv2sv}}{5,4,0} = ($bf[6], $bf[6], $bf[0]);
 $bits{rvalues}{0} = $bf[0];
 @{$bits{sassign}}{7,6,1,0} = ('OPpASSIGN_CV_TO_GV', 'OPpASSIGN_BACKWARDS', $bf[1], $bf[1]);
+@{$bits{sbit_and}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{sbit_or}}{1,0} = ($bf[1], $bf[1]);
+@{$bits{sbit_xor}}{1,0} = ($bf[1], $bf[1]);
 $bits{scalar}{0} = $bf[0];
 $bits{schomp}{0} = $bf[0];
 $bits{schop}{0} = $bf[0];
 @{$bits{scmp}}{1,0} = ($bf[1], $bf[1]);
+$bits{scomplement}{0} = $bf[0];
 @{$bits{seek}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
 @{$bits{seekdir}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
 @{$bits{select}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
@@ -782,7 +792,7 @@ our %ops_using = (
     OPpSORT_DESCEND          => [qw(sort)],
     OPpSPLIT_IMPLIM          => [qw(split)],
     OPpSUBSTR_REPL_FIRST     => [qw(substr)],
-    OPpTARGET_MY             => [qw(abs add atan2 chdir chmod chomp chown chr chroot complement concat cos crypt divide exec exp flock getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_ncmp i_subtract index int kill left_shift length link log match mkdir modulo multiply oct ord pow push rand rename repeat right_shift rindex rmdir schomp scmp setpgrp setpriority sin sleep split sqrt srand stringify subst subtract symlink system time trans transr unlink unshift utime vec wait waitpid)],
+    OPpTARGET_MY             => [qw(abs add atan2 chdir chmod chomp chown chr chroot complement concat cos crypt divide exec exp flock getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_ncmp i_subtract index int kill left_shift length link log match mkdir modulo multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push rand rename repeat right_shift rindex rmdir schomp scmp scomplement setpgrp setpriority sin sleep split sqrt srand stringify subst subtract symlink system time trans transr unlink unshift utime vec wait waitpid)],
     OPpTRANS_COMPLEMENT      => [qw(trans transr)],
 );
 
index 1f31986..b301678 100644 (file)
@@ -404,7 +404,7 @@ outputs something like this:
 =head1 INHERITANCE
 
 Benchmark inherits from no other class, except of course
-for Exporter.
+from Exporter.
 
 =head1 CAVEATS
 
@@ -482,7 +482,7 @@ our(@ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS, $VERSION);
              clearcache clearallcache disablecache enablecache);
 %EXPORT_TAGS=( all => [ @EXPORT, @EXPORT_OK ] ) ;
 
-$VERSION = 1.19;
+$VERSION = 1.20;
 
 # --- ':hireswallclock' special handling
 
index b4b6ecb..e4ee074 100644 (file)
--- a/lib/DB.t
+++ b/lib/DB.t
@@ -337,7 +337,7 @@ SKIP: {
                 '... should increment past lines with no events' );
                 
         ok( ! defined DB::_find_subline('sirnotappearinginthisfilm'),
-                '... should not find nonexistant sub' );
+                '... should not find nonexistent sub' );
 }
 
 # test DB::clr_breaks()
index f14e09f..06fbfd1 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 no warnings 'surrogate';    # surrogates can be inputs to this
 use charnames ();
 
-our $VERSION = '0.59';
+our $VERSION = '0.61';
 
 require Exporter;
 
@@ -15,6 +15,8 @@ our @EXPORT_OK = qw(charinfo
                    charblock charscript
                    charblocks charscripts
                    charinrange
+                   charprop
+                   charprops_all
                    general_categories bidi_types
                    compexcl
                    casefold all_casefolds casespec
@@ -22,6 +24,7 @@ our @EXPORT_OK = qw(charinfo
                     num
                     prop_aliases
                     prop_value_aliases
+                    prop_values
                     prop_invlist
                     prop_invmap
                     search_invlist
@@ -41,14 +44,20 @@ Unicode::UCD - Unicode character database
     use Unicode::UCD 'charinfo';
     my $charinfo   = charinfo($codepoint);
 
+    use Unicode::UCD 'charprop';
+    my $value  = charprop($codepoint, $property);
+
+    use Unicode::UCD 'charprops_all';
+    my $all_values_hash_ref = charprops_all($codepoint);
+
     use Unicode::UCD 'casefold';
-    my $casefold = casefold(0xFB00);
+    my $casefold = casefold($codepoint);
 
     use Unicode::UCD 'all_casefolds';
     my $all_casefolds_ref = all_casefolds();
 
     use Unicode::UCD 'casespec';
-    my $casespec = casespec(0xFB00);
+    my $casespec = casespec($codepoint);
 
     use Unicode::UCD 'charblock';
     my $charblock  = charblock($codepoint);
@@ -76,6 +85,9 @@ Unicode::UCD - Unicode character database
     use Unicode::UCD 'prop_value_aliases';
     my @gc_punct_names = prop_value_aliases("Gc", "Punct");
 
+    use Unicode::UCD 'prop_values';
+    my @all_EA_short_names = prop_values("East_Asian_Width");
+
     use Unicode::UCD 'prop_invlist';
     my @puncts = prop_invlist("gc=punctuation");
 
@@ -107,7 +119,8 @@ Character Database.
 
 Some of the functions are called with a I<code point argument>, which is either
 a decimal or a hexadecimal scalar designating a code point in the platform's
-native character set (extended to Unicode), or C<U+> followed by hexadecimals
+native character set (extended to Unicode), or a string containing C<U+>
+followed by hexadecimals
 designating a Unicode code point.  A leading 0 will force a hexadecimal
 interpretation, as will a hexadecimal digit that isn't a decimal digit.
 
@@ -116,7 +129,7 @@ Examples:
     223     # Decimal 223 in native character set
     0223    # Hexadecimal 223, native (= 547 decimal)
     0xDF    # Hexadecimal DF, native (= 223 decimal
-    U+DF    # Hexadecimal DF, in Unicode's character set
+    'U+DF'  # Hexadecimal DF, in Unicode's character set
                               (= LATIN SMALL LETTER SHARP S)
 
 Note that the largest code point in Unicode is U+10FFFF.
@@ -193,6 +206,10 @@ C<undef> is returned.
 Fields that aren't applicable to the particular code point argument exist in the
 returned hash, and are empty. 
 
+For results that are less "raw" than this function returns, or to get the values for
+any property, not just the few covered by this function, use the
+L</charprop()> function.
+
 The keys in the hash with the meanings of their values are:
 
 =over
@@ -248,7 +265,8 @@ The codes may be preceded by a word enclosed in angle brackets, then a space,
 like C<E<lt>compatE<gt> >, giving the type of decomposition
 
 This decomposition may be an intermediate one whose components are also
-decomposable.  Use L<Unicode::Normalize> to get the final decomposition.
+decomposable.  Use L<Unicode::Normalize> to get the final decomposition in one
+step.
 
 =item B<decimal>
 
@@ -279,47 +297,55 @@ As of Unicode 6.0, this is always empty.
 
 =item B<upper>
 
-is empty if there is no single code point uppercase mapping for I<code>
-(its uppercase mapping is itself);
-otherwise it is that mapping expressed as at least four hexdigits.
-(L</casespec()> should be used in addition to B<charinfo()>
-for case mappings when the calling program can cope with multiple code point
-mappings.)
+is, if non-empty, the uppercase mapping for I<code> expressed as at least four
+hexdigits.  This indicates that the full uppercase mapping is a single
+character, and is identical to the simple (single-character only) mapping.
+When this field is empty, it means that the simple uppercase mapping is
+I<code> itself; you'll need some other means, (like L</charprop()> or
+L</casespec()> to get the full mapping.
 
 =item B<lower>
 
-is empty if there is no single code point lowercase mapping for I<code>
-(its lowercase mapping is itself);
-otherwise it is that mapping expressed as at least four hexdigits.
-(L</casespec()> should be used in addition to B<charinfo()>
-for case mappings when the calling program can cope with multiple code point
-mappings.)
+is, if non-empty, the lowercase mapping for I<code> expressed as at least four
+hexdigits.  This indicates that the full lowercase mapping is a single
+character, and is identical to the simple (single-character only) mapping.
+When this field is empty, it means that the simple lowercase mapping is
+I<code> itself; you'll need some other means, (like L</charprop()> or
+L</casespec()> to get the full mapping.
 
 =item B<title>
 
-is empty if there is no single code point titlecase mapping for I<code>
-(its titlecase mapping is itself);
-otherwise it is that mapping expressed as at least four hexdigits.
-(L</casespec()> should be used in addition to B<charinfo()>
-for case mappings when the calling program can cope with multiple code point
-mappings.)
+is, if non-empty, the titlecase mapping for I<code> expressed as at least four
+hexdigits.  This indicates that the full titlecase mapping is a single
+character, and is identical to the simple (single-character only) mapping.
+When this field is empty, it means that the simple titlecase mapping is
+I<code> itself; you'll need some other means, (like L</charprop()> or
+L</casespec()> to get the full mapping.
 
 =item B<block>
 
 the block I<code> belongs to (used in C<\p{Blk=...}>).
-See L</Blocks versus Scripts>.
+The L</prop_value_aliases()> function can be used to get all the synonyms
+of the block name.
 
+See L</Blocks versus Scripts>.
 
 =item B<script>
 
 the script I<code> belongs to.
+The L</prop_value_aliases()> function can be used to get all the synonyms
+of the script name.
+
 See L</Blocks versus Scripts>.
 
 =back
 
 Note that you cannot do (de)composition and casing based solely on the
-I<decomposition>, I<combining>, I<lower>, I<upper>, and I<title> fields;
-you will need also the L</compexcl()>, and L</casespec()> functions.
+I<decomposition>, I<combining>, I<lower>, I<upper>, and I<title> fields; you
+will need also the L</casespec()> function and the C<Composition_Exclusion>
+property.  (Or you could just use the L<lc()|perlfunc/lc>,
+L<uc()|perlfunc/uc>, and L<ucfirst()|perlfunc/ucfirst> functions, and the
+L<Unicode::Normalize> module.)
 
 =cut
 
@@ -589,6 +615,210 @@ sub charinrange {
     _search($range, 0, $#$range, $code);
 }
 
+=head2 B<charprop()>
+
+    use Unicode::UCD 'charprop';
+
+    print charprop(0x41, "Gc"), "\n";
+    print charprop(0x61, "General_Category"), "\n";
+
+  prints
+    Lu
+    Ll
+
+This returns the value of the Unicode property given by the second parameter
+for the  L</code point argument> given by the first.
+
+The passed-in property may be specified as any of the synonyms returned by
+L</prop_aliases()>.
+
+The return value is always a scalar, either a string or a number.  For
+properties where there are synonyms for the values, the synonym returned by
+this function is the longest, most descriptive form, the one returned by
+L</prop_value_aliases()> when called in a scalar context.  Of course, you can
+call L</prop_value_aliases()> on the result to get other synonyms.
+
+The return values are more "cooked" than the L</charinfo()> ones.  For
+example, the C<"uc"> property value is the actual string containing the full
+uppercase mapping of the input code point.  You have to go to extra trouble
+with C<charinfo> to get this value from its C<upper> hash element when the
+full mapping differs from the simple one.
+
+Special note should be made of the return values for a few properties:
+
+=over
+
+=item Block
+
+The value returned is the new-style (see L</Old-style versus new-style block
+names>).
+
+=item Decomposition_Mapping
+
+Like L</charinfo()>, the result may be an intermediate decomposition whose
+components are also decomposable.  Use L<Unicode::Normalize> to get the final
+decomposition in one step.
+
+Unlike L</charinfo()>, this does not include the decomposition type.  Use the
+C<Decomposition_Type> property to get that.
+
+=item Name_Alias
+
+If the input code point's name has more than one synonym, they are returned
+joined into a single comma-separated string.
+
+=item Numeric_Value
+
+If the result is a fraction, it is converted into a floating point number to
+the accuracy of your platform.
+
+=item Script_Extensions
+
+If the result is multiple script names, they are returned joined into a single
+comma-separated string.
+
+=back
+
+When called with a property that is a Perl extension that isn't expressible in
+a compound form, this function currently returns C<undef>, as the only two
+possible values are I<true> or I<false> (1 or 0 I suppose).  This behavior may
+change in the future, so don't write code that relies on it.  C<Present_In> is
+a Perl extension that is expressible in a bipartite or compound form (for
+example, C<\p{Present_In=4.0}>), so C<charprop> accepts it.  But C<Any> is a
+Perl extension that isn't expressible that way, so C<charprop> returns
+C<undef> for it.  Also C<charprop> returns C<undef> for all Perl extensions
+that are internal-only.
+
+=cut
+
+sub charprop ($$) {
+    my ($input_cp, $prop) = @_;
+
+    my $cp = _getcode($input_cp);
+    croak __PACKAGE__, "::charprop: unknown code point '$input_cp'" unless defined $cp;
+
+    my ($list_ref, $map_ref, $format, $default)
+                                      = prop_invmap($prop);
+    return undef unless defined $list_ref;
+
+    my $i = search_invlist($list_ref, $cp);
+    croak __PACKAGE__, "::charprop: prop_invmap return is invalid for charprop('$input_cp', '$prop)" unless defined $i;
+
+    # $i is the index into both the inversion list and map of $cp.
+    my $map = $map_ref->[$i];
+
+    # Convert enumeration values to their most complete form.
+    if (! ref $map) {
+        my $long_form = prop_value_aliases($prop, $map);
+        $map = $long_form if defined $long_form;
+    }
+
+    if ($format =~ / ^ s /x) {  # Scalars
+        return join ",", @$map if ref $map; # Convert to scalar with comma
+                                            # separated array elements
+
+        # Resolve ambiguity as to whether an all digit value is a code point
+        # that should be converted to a character, or whether it is really
+        # just a number.  To do this, look at the default.  If it is a
+        # non-empty number, we can safely assume the result is also a number.
+        if ($map =~ / ^ \d+ $ /ax && $default !~ / ^ \d+ $ /ax) {
+            $map = chr $map;
+        }
+        elsif ($map =~ / ^ (?: Y | N ) $ /x) {
+
+            # prop_invmap() returns these values for properties that are Perl
+            # extensions.  But this is misleading.  For now, return undef for
+            # these, as currently documented.
+            undef $map unless
+                exists $Unicode::UCD::prop_aliases{utf8::_loose_name(lc $prop)};
+        }
+        return $map;
+    }
+    elsif ($format eq 'ar') {   # numbers, including rationals
+        my $offset = $cp - $list_ref->[$i];
+        return $map if $map =~ /nan/i;
+        return $map + $offset if $offset != 0;  # If needs adjustment
+        return eval $map;   # Convert e.g., 1/2 to 0.5
+    }
+    elsif ($format =~ /^a/) {   # Some entries need adjusting
+
+        # Linearize sequences into a string.
+        return join "", map { chr $_ } @$map if ref $map; # XXX && $format =~ /^ a [dl] /x;
+
+        return "" if $map eq "" && $format =~ /^a.*e/;
+
+        # These are all character mappings.  Return the chr if no adjustment
+        # is needed
+        return chr $cp if $map eq "0";
+
+        # Convert special entry.
+        if ($map eq '<hangul syllable>' && $format eq 'ad') {
+            use Unicode::Normalize qw(NFD);
+            return NFD(chr $cp);
+        }
+
+        # The rest need adjustment from the first entry in the inversion list
+        # corresponding to this map.
+        my $offset = $cp - $list_ref->[$i];
+        return chr($map + $cp - $list_ref->[$i]);
+    }
+    elsif ($format eq 'n') {    # The name property
+
+        # There are two special cases, handled here.
+        if ($map =~ / ( .+ ) <code\ point> $ /x) {
+            $map = sprintf("$1%04X", $cp);
+        }
+        elsif ($map eq '<hangul syllable>') {
+            $map = charnames::viacode($cp);
+        }
+        return $map;
+    }
+    else {
+        croak __PACKAGE__, "::charprop: Internal error: unknown format '$format'.  Please perlbug this";
+        return undef;
+    }
+}
+
+=head2 B<charprops_all()>
+
+    use Unicode::UCD 'charprops_all';
+
+    my $%properties_of_A_hash_ref = charprops_all("U+41");
+
+This returns a reference to a hash whose keys are all the distinct Unicode (no
+Perl extension) properties, and whose values are the respective values for
+those properties for the input L</code point argument>.
+
+Each key is the property name in its longest, most descriptive form.  The
+values are what L</charprop()> would return.
+
+This function is expensive in time and memory.
+
+=cut
+
+sub charprops_all($) {
+    my $input_cp = shift;
+
+    my $cp = _getcode($input_cp);
+    croak __PACKAGE__, "::charprops_all: unknown code point '$input_cp'" unless defined $cp;
+
+    my %return;
+
+    require "unicore/UCD.pl";
+
+    foreach my $prop (keys %Unicode::UCD::prop_aliases) {
+
+        # Don't return a Perl extension.  (This is the only one that
+        # %prop_aliases has in it.)
+        next if $prop eq 'perldecimaldigit';
+
+        # Use long name for $prop in the hash
+        $return{scalar prop_aliases($prop)} = charprop($cp, $prop);
+    }
+
+    return \%return;
+}
+
 =head2 B<charblock()>
 
     use Unicode::UCD 'charblock';
@@ -603,6 +833,9 @@ sub charinrange {
 With a L</code point argument> C<charblock()> returns the I<block> the code point
 belongs to, e.g.  C<Basic Latin>.  The old-style block name is returned (see
 L</Old-style versus new-style block names>).
+The L</prop_value_aliases()> function can be used to get all the synonyms
+of the block name.
+
 If the code point is unassigned, this returns the block it would belong to if
 it were assigned.  (If the Unicode version being used is so early as to not
 have blocks, all code points are considered to be in C<No_Block>.)
@@ -717,6 +950,8 @@ With a L</code point argument>, C<charscript()> returns the I<script> the
 code point belongs to, e.g., C<Latin>, C<Greek>, C<Han>.
 If the code point is unassigned or the Unicode version being used is so early
 that it doesn't have scripts, this function returns C<"Unknown">.
+The L</prop_value_aliases()> function can be used to get all the synonyms
+of the script name.
 
 If supplied with an argument that can't be a code point, charscript() tries
 to do the opposite and interpret the argument as a script name. The
@@ -784,6 +1019,9 @@ names>).
 L<prop_invmap("block")|/prop_invmap()> can be used to get this same data in a
 different type of data structure.
 
+L<prop_values("Block")|/prop_values()> can be used to get all
+the known new-style block names as a list, without the code point ranges.
+
 See also L</Blocks versus Scripts>.
 
 =cut
@@ -806,6 +1044,9 @@ the values.
 L<prop_invmap("script")|/prop_invmap()> can be used to get this same data in a
 different type of data structure.
 
+L<C<prop_values("Script")>|/prop_values()> can be used to get all
+the known script names as a list, without the code point ranges.
+
 See also L</Blocks versus Scripts>.
 
 =cut
@@ -889,8 +1130,9 @@ from the long names to the short names.  The general category is the
 one returned from
 L</charinfo()> under the C<category> key.
 
-The L</prop_value_aliases()> function can be used to get all the synonyms of
-the category name.
+The L</prop_values()> and L</prop_value_aliases()> functions can be used as an
+alternative to this function; the first returning a simple list of the short
+category names; and the second gets all the synonyms of a given category name.
 
 =cut
 
@@ -934,8 +1176,10 @@ the Unicode TR9 is recommended reading:
 L<http://www.unicode.org/reports/tr9/>
 (as of Unicode 5.0.0)
 
-The L</prop_value_aliases()> function can be used to get all the synonyms of
-the bidi type name.
+The L</prop_values()> and L</prop_value_aliases()> functions can be used as an
+alternative to this function; the first returning a simple list of the short
+bidi type names; and the second gets all the synonyms of a given bidi type
+name.
 
 =cut
 
@@ -1946,6 +2190,79 @@ sub prop_aliases ($) {
 
 =pod
 
+=head2 B<prop_values()>
+
+    use Unicode::UCD 'prop_values';
+
+    print "AHex values are: ", join(", ", prop_values("AHex")),
+                               "\n";
+  prints:
+    AHex values are: N, Y
+
+Some Unicode properties have a restricted set of legal values.  For example,
+all binary properties are restricted to just C<true> or C<false>; and there
+are only a few dozen possible General Categories.  Use C<prop_values>
+to find out if a given property is one such, and if so, to get a list of the
+values:
+
+    print join ", ", prop_values("NFC_Quick_Check");
+  prints:
+    M, N, Y
+
+If the property doesn't have such a restricted set, C<undef> is returned.
+
+There are usually several synonyms for each possible value.  Use
+L</prop_value_aliases()> to access those.
+
+Case, white space, hyphens, and underscores are ignored in the input property
+name (except for the trailing underscore in the old-form grandfathered-in
+general category property value C<"L_">, which is better written as C<"LC">).
+
+If the property name is unknown, C<undef> is returned.  Note that Perl typically
+recognizes property names in regular expressions with an optional C<"Is_>"
+(with or without the underscore) prefixed to them, such as C<\p{isgc=punct}>.
+This function does not recognize those in the property parameter, returning
+C<undef>.
+
+For the block property, new-style block names are returned (see
+L</Old-style versus new-style block names>).
+
+C<prop_values> does not know about any user-defined properties, and
+will return C<undef> if called with one of those.
+
+=cut
+
+# These are created by mktables for this module and stored in unicore/UCD.pl
+# where their structures are described.
+our %loose_to_standard_value;
+our %prop_value_aliases;
+
+sub prop_values ($) {
+    my $prop = shift;
+    return undef unless defined $prop;
+
+    require "unicore/UCD.pl";
+    require "utf8_heavy.pl";
+
+    # Find the property name synonym that's used as the key in other hashes,
+    # which is element 0 in the returned list.
+    ($prop) = prop_aliases($prop);
+    return undef if ! $prop;
+    $prop = utf8::_loose_name(lc $prop);
+
+    # Here is a legal property.
+    return undef unless exists $prop_value_aliases{$prop};
+    my @return;
+    foreach my $value_key (sort { lc $a cmp lc $b }
+                            keys %{$prop_value_aliases{$prop}})
+    {
+        push @return, $prop_value_aliases{$prop}{$value_key}[0];
+    }
+    return @return;
+}
+
+=pod
+
 =head2 B<prop_value_aliases()>
 
     use Unicode::UCD 'prop_value_aliases';
@@ -1959,7 +2276,7 @@ sub prop_aliases ($) {
     print "The short name is $short_name\n";
     print "The other aliases are: ", join(", ", @other_names), "\n";
 
-    prints:
+  prints:
     The full name is Punctuation
     The short name is P
     The other aliases are: Punct
@@ -1968,18 +2285,20 @@ Some Unicode properties have a restricted set of legal values.  For example,
 all binary properties are restricted to just C<true> or C<false>; and there
 are only a few dozen possible General Categories.
 
-For such properties, there are usually several synonyms for each possible
-value.  For example, in binary properties, I<truth> can be represented by any of
-the strings "Y", "Yes", "T", or "True"; and the General Category
-"Punctuation" by that string, or "Punct", or simply "P".
+You can use L</prop_values()> to find out if a given property is one which has
+a restricted set of values, and if so, what those values are.  But usually
+each value actually has several synonyms.  For example, in Unicode binary
+properties, I<truth> can be represented by any of the strings "Y", "Yes", "T",
+or "True"; and the General Category "Punctuation" by that string, or "Punct",
+or simply "P".
 
 Like property names, there is typically at least a short name for each such
-property-value, and a long name.  If you know any name of the property-value,
-you can use C<prop_value_aliases>() to get the long name (when called in
-scalar context), or a list of all the names, with the short name in the 0th
-element, the long name in the next element, and any other synonyms in the
-remaining elements, in no particular order, except that any all-numeric
-synonyms will be last.
+property-value, and a long name.  If you know any name of the property-value
+(which you can get by L</prop_values()>, you can use C<prop_value_aliases>()
+to get the long name (when called in scalar context), or a list of all the
+names, with the short name in the 0th element, the long name in the next
+element, and any other synonyms in the remaining elements, in no particular
+order, except that any all-numeric synonyms will be last.
 
 The long name is returned in a form nicely capitalized, suitable for printing.
 
@@ -1995,7 +2314,7 @@ C<undef>.
 
 If called with a property that doesn't have synonyms for its values, it
 returns the input value, possibly normalized with capitalization and
-underscores.
+underscores, but not necessarily checking that the input value is valid.
 
 For the block property, new-style block names are returned (see
 L</Old-style versus new-style block names>).
@@ -2008,11 +2327,6 @@ will return C<undef> if called with one of those.
 
 =cut
 
-# These are created by mktables for this routine and stored in unicore/UCD.pl
-# where their structures are described.
-our %loose_to_standard_value;
-our %prop_value_aliases;
-
 sub prop_value_aliases ($$) {
     my ($prop, $value) = @_;
     return unless defined $prop && defined $value;
@@ -2032,7 +2346,18 @@ sub prop_value_aliases ($$) {
     # anything, like most (if not all) string properties.  These don't have
     # synonyms anyway.  Simply return the input.  For example, there is no
     # synonym for ('Uppercase_Mapping', A').
-    return $value if ! exists $prop_value_aliases{$prop};
+    if (! exists $prop_value_aliases{$prop}) {
+
+        # Here, we have a legal property, but an unknown value.  Since the
+        # property is legal, if it isn't in the prop_aliases hash, it must be
+        # a Perl-extension All perl extensions are binary, hence are
+        # enumerateds, which means that we know that the input unknown value
+        # is illegal.
+        return if ! exists $Unicode::UCD::prop_aliases{$prop};
+
+        # Otherwise, we assume it's valid, as documented.
+        return $value;
+    }
 
     # The value name may be loosely or strictly matched; we don't know yet.
     # But both types use lower-case.
@@ -2213,7 +2538,8 @@ our $MAX_UNICODE_CODEPOINT;
 sub prop_invlist ($;$) {
     my $prop = $_[0];
 
-    # Undocumented way to get at Perl internal properties
+    # Undocumented way to get at Perl internal properties; it may be changed
+    # or removed without notice at any time.
     my $internal_ok = defined $_[1] && $_[1] eq '_perl_core_internal_ok';
 
     return if ! defined $prop;
@@ -2792,6 +3118,14 @@ Use L</casefold()> for these.
 C<prop_invmap> does not know about any user-defined properties, and will
 return C<undef> if called with one of those.
 
+The returned values for the Perl extension properties, such as C<Any> and
+C<Greek> are somewhat misleading.  The values are either C<"Y"> or C<"N>".
+All Unicode properties are bipartite, so you can actually use the C<"Y"> or
+C<"N>" in a Perl regular rexpression for these, like C<qr/\p{ID_Start=Y/}> or
+C<qr/\p{Upper=N/}>.  But the Perl extensions aren't specified this way, only
+like C</qr/\p{Any}>, I<etc>.  You can't actually use the C<"Y"> and C<"N>" in
+them.
+
 =cut
 
 # User-defined properties could be handled with some changes to utf8_heavy.pl;
@@ -2809,15 +3143,21 @@ our @algorithmic_named_code_points;
 our $HANGUL_BEGIN;
 our $HANGUL_COUNT;
 
-sub prop_invmap ($) {
+sub prop_invmap ($;$) {
 
     croak __PACKAGE__, "::prop_invmap: must be called in list context" unless wantarray;
 
     my $prop = $_[0];
     return unless defined $prop;
 
+    # Undocumented way to get at Perl internal properties; it may be changed
+    # or removed without notice at any time.  It currently also changes the
+    # output to use the format specified in the file rather than the one we
+    # normally compute and return
+    my $internal_ok = defined $_[1] && $_[1] eq '_perl_core_internal_ok';
+
     # Fail internal properties
-    return if $prop =~ /^_/;
+    return if $prop =~ /^_/ && ! $internal_ok;
 
     # The values returned by this function.
     my (@invlist, @invmap, $format, $missing);
@@ -3426,8 +3766,15 @@ RETRY:
                 # If the overrides came from SPECIALS, the code point keys are
                 # packed UTF-8.
                 if ($overrides == $swash->{'SPECIALS'}) {
-                    $cp = unpack("C0U", $cp_maybe_utf8);
-                    @map = unpack "U0U*", $swash->{'SPECIALS'}{$cp_maybe_utf8};
+                    $cp = $cp_maybe_utf8;
+                    if (! utf8::decode($cp)) {
+                        croak __PACKAGE__, "::prop_invmap: Malformed UTF-8: ",
+                              map { sprintf("\\x{%02X}", unpack("C", $_)) }
+                                                                split "", $cp;
+                    }
+
+                    $cp = unpack("W", $cp);
+                    @map = unpack "W*", $swash->{'SPECIALS'}{$cp_maybe_utf8};
 
                     # The empty string will show up unpacked as an empty
                     # array.
@@ -3673,7 +4020,7 @@ sub UnicodeVersion {
 =head2 B<Blocks versus Scripts>
 
 The difference between a block and a script is that scripts are closer
-to the linguistic notion of a set of code points required to present
+to the linguistic notion of a set of code points required to represent
 languages, while block is more of an artifact of the Unicode code point
 numbering and separation into blocks of consecutive code points (so far the
 size of a block is some multiple of 16, like 128 or 256).
@@ -3683,7 +4030,7 @@ as C<Basic Latin>, C<Latin 1 Supplement>, C<Latin Extended-A>, and
 C<Latin Extended-B>.  On the other hand, the Latin script does not
 contain all the characters of the C<Basic Latin> block (also known as
 ASCII): it includes only the letters, and not, for example, the digits
-or the punctuation.
+nor the punctuation.
 
 For blocks see L<http://www.unicode.org/Public/UNIDATA/Blocks.txt>
 
@@ -3712,8 +4059,9 @@ The newer style replaces these with underscores, like this:
 
 This newer style is consistent with the values of other Unicode properties.
 To preserve backward compatibility, all the functions in Unicode::UCD that
-return block names (except one) return the old-style ones.  That one function,
-L</prop_value_aliases()> can be used to convert from old-style to new-style:
+return block names (except as noted) return the old-style ones.
+L</prop_value_aliases()> returns the new-style and can be used to convert from
+old-style to new-style:
 
  my $new_style = prop_values_aliases("block", $old_style);
 
index 37c8bd2..ee6ec03 100644 (file)
@@ -1,9 +1,7 @@
 #!perl -w
 BEGIN {
-    if (ord("A") != 65) {
-       print "1..0 # Skip: EBCDIC\n";
-       exit 0;
-    }
+    $::IS_ASCII = (ord("A") == 65) ? 1 : 0;
+    $::IS_EBCDIC = (ord("A") == 193) ? 1 : 0;
     chdir 't' if -d 't';
     @INC = '../lib';
     require Config; import Config;
@@ -17,10 +15,9 @@ my @warnings;
 local $SIG{__WARN__} = sub { push @warnings, @_  };
 
 use strict;
-use Unicode::UCD;
 use Test::More;
 
-use Unicode::UCD 'charinfo';
+use Unicode::UCD qw(charinfo charprop charprops_all);
 
 my $input_record_separator = 7; # Make sure Unicode::UCD isn't affected by
 $/ = $input_record_separator;   # setting this.
@@ -28,266 +25,494 @@ $/ = $input_record_separator;   # setting this.
 my $charinfo;
 
 is(charinfo(0x110000), undef, "Verify charinfo() of non-unicode is undef");
-
-$charinfo = charinfo(0);    # Null is often problematic, so test it.
-
-is($charinfo->{code},           '0000', '<control>');
-is($charinfo->{name},           '<control>');
-is($charinfo->{category},       'Cc');
-is($charinfo->{combining},      '0');
-is($charinfo->{bidi},           'BN');
-is($charinfo->{decomposition},  '');
-is($charinfo->{decimal},        '');
-is($charinfo->{digit},          '');
-is($charinfo->{numeric},        '');
-is($charinfo->{mirrored},       'N');
-is($charinfo->{unicode10},      'NULL');
-is($charinfo->{comment},        '');
-is($charinfo->{upper},          '');
-is($charinfo->{lower},          '');
-is($charinfo->{title},          '');
-is($charinfo->{block},          'Basic Latin');
-is($charinfo->{script},         'Common');
-
-$charinfo = charinfo(0x41);
-
-is($charinfo->{code},           '0041', 'LATIN CAPITAL LETTER A');
-is($charinfo->{name},           'LATIN CAPITAL LETTER A');
-is($charinfo->{category},       'Lu');
-is($charinfo->{combining},      '0');
-is($charinfo->{bidi},           'L');
-is($charinfo->{decomposition},  '');
-is($charinfo->{decimal},        '');
-is($charinfo->{digit},          '');
-is($charinfo->{numeric},        '');
-is($charinfo->{mirrored},       'N');
-is($charinfo->{unicode10},      '');
-is($charinfo->{comment},        '');
-is($charinfo->{upper},          '');
-is($charinfo->{lower},          '0061');
-is($charinfo->{title},          '');
-is($charinfo->{block},          'Basic Latin');
-is($charinfo->{script},         'Latin');
-
-$charinfo = charinfo(0x100);
-
-is($charinfo->{code},           '0100', 'LATIN CAPITAL LETTER A WITH MACRON');
-is($charinfo->{name},           'LATIN CAPITAL LETTER A WITH MACRON');
-is($charinfo->{category},       'Lu');
-is($charinfo->{combining},      '0');
-is($charinfo->{bidi},           'L');
-is($charinfo->{decomposition},  '0041 0304');
-is($charinfo->{decimal},        '');
-is($charinfo->{digit},          '');
-is($charinfo->{numeric},        '');
-is($charinfo->{mirrored},       'N');
-is($charinfo->{unicode10},      'LATIN CAPITAL LETTER A MACRON');
-is($charinfo->{comment},        '');
-is($charinfo->{upper},          '');
-is($charinfo->{lower},          '0101');
-is($charinfo->{title},          '');
-is($charinfo->{block},          'Latin Extended-A');
-is($charinfo->{script},         'Latin');
-
-# 0x0590 is in the Hebrew block but unused.
-
-$charinfo = charinfo(0x590);
-
-is($charinfo->{code},          undef,  '0x0590 - unused Hebrew');
-is($charinfo->{name},          undef);
-is($charinfo->{category},      undef);
-is($charinfo->{combining},     undef);
-is($charinfo->{bidi},          undef);
-is($charinfo->{decomposition}, undef);
-is($charinfo->{decimal},       undef);
-is($charinfo->{digit},         undef);
-is($charinfo->{numeric},       undef);
-is($charinfo->{mirrored},      undef);
-is($charinfo->{unicode10},     undef);
-is($charinfo->{comment},       undef);
-is($charinfo->{upper},         undef);
-is($charinfo->{lower},         undef);
-is($charinfo->{title},         undef);
-is($charinfo->{block},         undef);
-is($charinfo->{script},        undef);
+is(charprop(0x110000, 'age'), "Unassigned", "Verify charprop(age) of non-unicode is Unassigned");
+is(charprop(0x110000, 'in'), "Unassigned", "Verify charprop(in), a bipartite Perl extension, works");
+is(charprop(0x110000, 'Any'), undef, "Verify charprop of non-bipartite Perl extension returns undef");
+
+my $cp = 0;
+$charinfo = charinfo($cp);    # Null is often problematic, so test it.
+
+is($charinfo->{code},           "0000",
+                        "Next tests are for charinfo and charprop; first NULL");
+is($charinfo->{name},           "<control>");
+is(charprop($cp, "name"),       "");
+
+# This gets a sl-type property returning a flattened list
+is(charprop($cp, "name_alias"), "NULL: control,NUL: abbreviation");
+
+is($charinfo->{category},       "Cc");
+is(charprop($cp, "category"),   "Control");
+is($charinfo->{combining},      "0");
+is(charprop($cp, "ccc"),        "Not_Reordered");
+is($charinfo->{bidi},           "BN");
+is(charprop($cp, "bc"),         "Boundary_Neutral");
+is($charinfo->{decomposition},  "");
+is(charprop($cp, "dm"),         "\0");
+is($charinfo->{decimal},        "");
+is($charinfo->{digit},          "");
+is($charinfo->{numeric},        "");
+is(charprop($cp, "nv"),         "NaN");
+is($charinfo->{mirrored},       "N");
+is(charprop($cp, "bidim"),      "No");
+is($charinfo->{unicode10},      "NULL");
+is(charprop($cp, "na1"),        "NULL");
+is($charinfo->{comment},        "");
+is(charprop($cp, "isc"),        "");
+is($charinfo->{upper},          "");
+is(charprop($cp, "uc"),         "\0");
+is($charinfo->{lower},          "");
+is(charprop($cp, "lc"),         "\0");
+is($charinfo->{title},          "");
+is(charprop($cp, "tc"),         "\0");
+is($charinfo->{block},          "Basic Latin");
+is(charprop($cp, "block"),      "Basic_Latin");
+is($charinfo->{script},         "Common");
+is(charprop($cp, "script"),     "Common");
+
+$cp = utf8::unicode_to_native(0x41);
+my $A_code = sprintf("%04X", ord("A"));
+my $a_code = sprintf("%04X", ord("a"));
+$charinfo = charinfo(utf8::unicode_to_native($cp));
+
+is($charinfo->{code},           $A_code, "LATIN CAPITAL LETTER A");
+is($charinfo->{name},           "LATIN CAPITAL LETTER A");
+is(charprop($cp, 'name'),       "LATIN CAPITAL LETTER A");
+is($charinfo->{category},       "Lu");
+is(charprop($cp, 'gc'),         "Uppercase_Letter");
+is($charinfo->{combining},      "0");
+is(charprop($cp, 'ccc'),        "Not_Reordered");
+is($charinfo->{bidi},           "L");
+is(charprop($cp, 'bc'),         "Left_To_Right");
+is($charinfo->{decomposition},  "");
+is(charprop($cp, 'dm'),         "A");
+is($charinfo->{decimal},        "");
+is($charinfo->{digit},          "");
+is($charinfo->{numeric},        "");
+is(charprop($cp, 'nv'),        "NaN");
+is($charinfo->{mirrored},       "N");
+is(charprop($cp, 'bidim'),      "No");
+is($charinfo->{unicode10},      "");
+is(charprop($cp, 'na1'),        "");
+is($charinfo->{comment},        "");
+is(charprop($cp, 'isc'),        "");
+is($charinfo->{upper},          "");
+is(charprop($cp, 'uc'),         "A");
+is($charinfo->{lower},          $a_code);
+is(charprop($cp, 'lc'),         "a");
+is($charinfo->{title},          "");
+is(charprop($cp, 'tc'),         "A");
+is($charinfo->{block},          "Basic Latin");
+is(charprop($cp, 'block'),      "Basic_Latin");
+is($charinfo->{script},         "Latin");
+is(charprop($cp, 'script'),     "Latin");
+
+$cp = 0x100;
+$charinfo = charinfo($cp);
+
+is($charinfo->{code},           "0100", "LATIN CAPITAL LETTER A WITH MACRON");
+is($charinfo->{name},           "LATIN CAPITAL LETTER A WITH MACRON");
+is(charprop($cp, 'name'),       "LATIN CAPITAL LETTER A WITH MACRON");
+is($charinfo->{category},       "Lu");
+is(charprop($cp, 'gc'),         "Uppercase_Letter");
+is($charinfo->{combining},      "0");
+is(charprop($cp, 'ccc'),        "Not_Reordered");
+is($charinfo->{bidi},           "L");
+is(charprop($cp, 'bc'),         "Left_To_Right");
+is($charinfo->{decomposition},  "$A_code 0304");
+is(charprop($cp, 'dm'),         "A\x{0304}");
+is($charinfo->{decimal},        "");
+is($charinfo->{digit},          "");
+is($charinfo->{numeric},        "");
+is(charprop($cp, 'nv'),         "NaN");
+is($charinfo->{mirrored},       "N");
+is(charprop($cp, 'bidim'),      "No");
+is($charinfo->{unicode10},      "LATIN CAPITAL LETTER A MACRON");
+is(charprop($cp, 'na1'),        "LATIN CAPITAL LETTER A MACRON");
+is($charinfo->{comment},        "");
+is(charprop($cp, 'isc'),        "");
+is($charinfo->{upper},          "");
+is(charprop($cp, 'uc'),         "\x{100}");
+is($charinfo->{lower},          "0101");
+is(charprop($cp, 'lc'),         "\x{101}");
+is($charinfo->{title},          "");
+is(charprop($cp, 'tc'),         "\x{100}");
+is($charinfo->{block},          "Latin Extended-A");
+is(charprop($cp, 'block'),      "Latin_Extended_A");
+is($charinfo->{script},         "Latin");
+is(charprop($cp, 'script'),     "Latin");
+
+$cp = 0x590;               # 0x0590 is in the Hebrew block but unused.
+$charinfo = charinfo($cp);
+
+is($charinfo->{code},           undef, "0x0590 - unused Hebrew");
+is($charinfo->{name},           undef);
+is(charprop($cp, 'name'),       "");
+is($charinfo->{category},       undef);
+is(charprop($cp, 'gc'),         "Unassigned");
+is($charinfo->{combining},      undef);
+is(charprop($cp, 'ccc'),        "Not_Reordered");
+is($charinfo->{bidi},           undef);
+is(charprop($cp, 'bc'),         "Right_To_Left");
+is($charinfo->{decomposition},  undef);
+is(charprop($cp, 'dm'),         "\x{590}");
+is($charinfo->{decimal},        undef);
+is($charinfo->{digit},          undef);
+is($charinfo->{numeric},        undef);
+is(charprop($cp, 'nv'),         "NaN");
+is($charinfo->{mirrored},       undef);
+is(charprop($cp, 'bidim'),      "No");
+is($charinfo->{unicode10},      undef);
+is(charprop($cp, 'na1'),        "");
+is($charinfo->{comment},        undef);
+is(charprop($cp, 'isc'),        "");
+is($charinfo->{upper},          undef);
+is(charprop($cp, 'uc'),         "\x{590}");
+is($charinfo->{lower},          undef);
+is(charprop($cp, 'lc'),         "\x{590}");
+is($charinfo->{title},          undef);
+is(charprop($cp, 'tc'),         "\x{590}");
+is($charinfo->{block},          undef);
+is(charprop($cp, 'block'),      "Hebrew");
+is($charinfo->{script},         undef);
+is(charprop($cp, 'script'),     "Unknown");
 
 # 0x05d0 is in the Hebrew block and used.
 
-$charinfo = charinfo(0x5d0);
-
-is($charinfo->{code},           '05D0', '05D0 - used Hebrew');
-is($charinfo->{name},           'HEBREW LETTER ALEF');
-is($charinfo->{category},       'Lo');
-is($charinfo->{combining},      '0');
-is($charinfo->{bidi},           'R');
-is($charinfo->{decomposition},  '');
-is($charinfo->{decimal},        '');
-is($charinfo->{digit},          '');
-is($charinfo->{numeric},        '');
-is($charinfo->{mirrored},       'N');
-is($charinfo->{unicode10},      '');
-is($charinfo->{comment},        '');
-is($charinfo->{upper},          '');
-is($charinfo->{lower},          '');
-is($charinfo->{title},          '');
-is($charinfo->{block},          'Hebrew');
-is($charinfo->{script},         'Hebrew');
+$cp = 0x5d0;
+$charinfo = charinfo($cp);
+
+is($charinfo->{code},           "05D0", "05D0 - used Hebrew");
+is($charinfo->{name},           "HEBREW LETTER ALEF");
+is(charprop($cp, 'name'),       "HEBREW LETTER ALEF");
+is($charinfo->{category},       "Lo");
+is(charprop($cp, 'gc'),         "Other_Letter");
+is($charinfo->{combining},      "0");
+is(charprop($cp, 'ccc'),        "Not_Reordered");
+is($charinfo->{bidi},           "R");
+is(charprop($cp, 'bc'),         "Right_To_Left");
+is($charinfo->{decomposition},  "");
+is(charprop($cp, 'dm'),         "\x{5d0}");
+is($charinfo->{decimal},        "");
+is($charinfo->{digit},          "");
+is($charinfo->{numeric},        "");
+is(charprop($cp, 'nv'),         "NaN");
+is($charinfo->{mirrored},       "N");
+is(charprop($cp, 'bidim'),      "No");
+is($charinfo->{unicode10},      "");
+is(charprop($cp, 'na1'),        "");
+is($charinfo->{comment},        "");
+is(charprop($cp, 'isc'),        "");
+is($charinfo->{upper},          "");
+is(charprop($cp, 'uc'),         "\x{5d0}");
+is($charinfo->{lower},          "");
+is(charprop($cp, 'lc'),         "\x{5d0}");
+is($charinfo->{title},          "");
+is(charprop($cp, 'tc'),         "\x{5d0}");
+is($charinfo->{block},          "Hebrew");
+is(charprop($cp, 'block'),      "Hebrew");
+is($charinfo->{script},         "Hebrew");
+is(charprop($cp, 'script'),     "Hebrew");
 
 # An open syllable in Hangul.
 
-$charinfo = charinfo(0xAC00);
-
-is($charinfo->{code},           'AC00', 'HANGUL SYLLABLE U+AC00');
-is($charinfo->{name},           'HANGUL SYLLABLE GA');
-is($charinfo->{category},       'Lo');
-is($charinfo->{combining},      '0');
-is($charinfo->{bidi},           'L');
-is($charinfo->{decomposition},  '1100 1161');
-is($charinfo->{decimal},        '');
-is($charinfo->{digit},          '');
-is($charinfo->{numeric},        '');
-is($charinfo->{mirrored},       'N');
-is($charinfo->{unicode10},      '');
-is($charinfo->{comment},        '');
-is($charinfo->{upper},          '');
-is($charinfo->{lower},          '');
-is($charinfo->{title},          '');
-is($charinfo->{block},          'Hangul Syllables');
-is($charinfo->{script},         'Hangul');
+$cp = 0xAC00;
+$charinfo = charinfo($cp);
+
+is($charinfo->{code},           "AC00", "HANGUL SYLLABLE U+AC00");
+is($charinfo->{name},           "HANGUL SYLLABLE GA");
+is(charprop($cp, 'name'),       "HANGUL SYLLABLE GA");
+is($charinfo->{category},       "Lo");
+is(charprop($cp, 'gc'),         "Other_Letter");
+is($charinfo->{combining},      "0");
+is(charprop($cp, 'ccc'),        "Not_Reordered");
+is($charinfo->{bidi},           "L");
+is(charprop($cp, 'bc'),         "Left_To_Right");
+is($charinfo->{decomposition},  "1100 1161");
+is(charprop($cp, 'dm'),         "\x{1100}\x{1161}");
+is($charinfo->{decimal},        "");
+is($charinfo->{digit},          "");
+is($charinfo->{numeric},        "");
+is(charprop($cp, 'nv'),         "NaN");
+is($charinfo->{mirrored},       "N");
+is(charprop($cp, 'bidim'),      "No");
+is($charinfo->{unicode10},      "");
+is(charprop($cp, 'na1'),        "");
+is($charinfo->{comment},        "");
+is(charprop($cp, 'isc'),        "");
+is($charinfo->{upper},          "");
+is(charprop($cp, 'uc'),         "\x{AC00}");
+is($charinfo->{lower},          "");
+is(charprop($cp, 'lc'),         "\x{AC00}");
+is($charinfo->{title},          "");
+is(charprop($cp, 'tc'),         "\x{AC00}");
+is($charinfo->{block},          "Hangul Syllables");
+is(charprop($cp, 'block'),      "Hangul_Syllables");
+is($charinfo->{script},         "Hangul");
+is(charprop($cp, 'script'),     "Hangul");
 
 # A closed syllable in Hangul.
 
-$charinfo = charinfo(0xAE00);
-
-is($charinfo->{code},           'AE00', 'HANGUL SYLLABLE U+AE00');
-is($charinfo->{name},           'HANGUL SYLLABLE GEUL');
-is($charinfo->{category},       'Lo');
-is($charinfo->{combining},      '0');
-is($charinfo->{bidi},           'L');
+$cp = 0xAE00;
+$charinfo = charinfo($cp);
+
+is($charinfo->{code},           "AE00", "HANGUL SYLLABLE U+AE00");
+is($charinfo->{name},           "HANGUL SYLLABLE GEUL");
+is(charprop($cp, 'name'),       "HANGUL SYLLABLE GEUL");
+is($charinfo->{category},       "Lo");
+is(charprop($cp, 'gc'),         "Other_Letter");
+is($charinfo->{combining},      "0");
+is(charprop($cp, 'ccc'),        "Not_Reordered");
+is($charinfo->{bidi},           "L");
+is(charprop($cp, 'bc'),         "Left_To_Right");
 is($charinfo->{decomposition},  "1100 1173 11AF");
-is($charinfo->{decimal},        '');
-is($charinfo->{digit},          '');
-is($charinfo->{numeric},        '');
-is($charinfo->{mirrored},       'N');
-is($charinfo->{unicode10},      '');
-is($charinfo->{comment},        '');
-is($charinfo->{upper},          '');
-is($charinfo->{lower},          '');
-is($charinfo->{title},          '');
-is($charinfo->{block},          'Hangul Syllables');
-is($charinfo->{script},         'Hangul');
-
-$charinfo = charinfo(0x1D400);
-
-is($charinfo->{code},           '1D400', 'MATHEMATICAL BOLD CAPITAL A');
-is($charinfo->{name},           'MATHEMATICAL BOLD CAPITAL A');
-is($charinfo->{category},       'Lu');
-is($charinfo->{combining},      '0');
-is($charinfo->{bidi},           'L');
-is($charinfo->{decomposition},  '<font> 0041');
-is($charinfo->{decimal},        '');
-is($charinfo->{digit},          '');
-is($charinfo->{numeric},        '');
-is($charinfo->{mirrored},       'N');
-is($charinfo->{unicode10},      '');
-is($charinfo->{comment},        '');
-is($charinfo->{upper},          '');
-is($charinfo->{lower},          '');
-is($charinfo->{title},          '');
-is($charinfo->{block},          'Mathematical Alphanumeric Symbols');
-is($charinfo->{script},         'Common');
-
-$charinfo = charinfo(0x9FBA);  #Bug 58428
-
-is($charinfo->{code},           '9FBA', 'U+9FBA');
-is($charinfo->{name},           'CJK UNIFIED IDEOGRAPH-9FBA');
-is($charinfo->{category},       'Lo');
-is($charinfo->{combining},      '0');
-is($charinfo->{bidi},           'L');
-is($charinfo->{decomposition},  '');
-is($charinfo->{decimal},        '');
-is($charinfo->{digit},          '');
-is($charinfo->{numeric},        '');
-is($charinfo->{mirrored},       'N');
-is($charinfo->{unicode10},      '');
-is($charinfo->{comment},        '');
-is($charinfo->{upper},          '');
-is($charinfo->{lower},          '');
-is($charinfo->{title},          '');
-is($charinfo->{block},          'CJK Unified Ideographs');
-is($charinfo->{script},         'Han');
+is(charprop($cp, 'dm'),         "\x{1100}\x{1173}\x{11AF}");
+is($charinfo->{decimal},        "");
+is($charinfo->{digit},          "");
+is($charinfo->{numeric},        "");
+is(charprop($cp, 'nv'),         "NaN");
+is($charinfo->{mirrored},       "N");
+is(charprop($cp, 'bidim'),      "No");
+is($charinfo->{unicode10},      "");
+is(charprop($cp, 'na1'),        "");
+is($charinfo->{comment},        "");
+is(charprop($cp, 'isc'),        "");
+is($charinfo->{upper},          "");
+is(charprop($cp, 'uc'),         "\x{AE00}");
+is($charinfo->{lower},          "");
+is(charprop($cp, 'lc'),         "\x{AE00}");
+is($charinfo->{title},          "");
+is(charprop($cp, 'tc'),         "\x{AE00}");
+is($charinfo->{block},          "Hangul Syllables");
+is(charprop($cp, 'block'),      "Hangul_Syllables");
+is($charinfo->{script},         "Hangul");
+is(charprop($cp, 'script'),     "Hangul");
+
+$cp = 0x1D400;
+$charinfo = charinfo($cp);
+
+is($charinfo->{code},           "1D400", "MATHEMATICAL BOLD CAPITAL A");
+is($charinfo->{name},           "MATHEMATICAL BOLD CAPITAL A");
+is(charprop($cp, 'name'),       "MATHEMATICAL BOLD CAPITAL A");
+is($charinfo->{category},       "Lu");
+is(charprop($cp, 'gc'),         "Uppercase_Letter");
+is($charinfo->{combining},      "0");
+is(charprop($cp, 'ccc'),        "Not_Reordered");
+is($charinfo->{bidi},           "L");
+is(charprop($cp, 'bc'),         "Left_To_Right");
+is($charinfo->{decomposition},  "<font> $A_code");
+is(charprop($cp, 'dm'),         "A");
+is($charinfo->{decimal},        "");
+is($charinfo->{digit},          "");
+is($charinfo->{numeric},        "");
+is(charprop($cp, 'nv'),         "NaN");
+is($charinfo->{mirrored},       "N");
+is(charprop($cp, 'bidim'),      "No");
+is($charinfo->{unicode10},      "");
+is(charprop($cp, 'na1'),        "");
+is($charinfo->{comment},        "");
+is(charprop($cp, 'isc'),        "");
+is($charinfo->{upper},          "");
+is(charprop($cp, 'uc'),         "\x{1D400}");
+is($charinfo->{lower},          "");
+is(charprop($cp, 'lc'),         "\x{1D400}");
+is($charinfo->{title},          "");
+is(charprop($cp, 'tc'),         "\x{1D400}");
+is($charinfo->{block},          "Mathematical Alphanumeric Symbols");
+is(charprop($cp, 'block'),      "Mathematical_Alphanumeric_Symbols");
+is($charinfo->{script},         "Common");
+is(charprop($cp, 'script'),     "Common");
+
+$cp = 0x9FBA;                  #Bug 58428
+$charinfo = charinfo(0x9FBA);
+
+is($charinfo->{code},           "9FBA", "U+9FBA");
+is($charinfo->{name},           "CJK UNIFIED IDEOGRAPH-9FBA");
+is(charprop($cp, 'name'),       "CJK UNIFIED IDEOGRAPH-9FBA");
+is($charinfo->{category},       "Lo");
+is(charprop($cp, 'gc'),         "Other_Letter");
+is($charinfo->{combining},      "0");
+is(charprop($cp, 'ccc'),        "Not_Reordered");
+is($charinfo->{bidi},           "L");
+is(charprop($cp, 'bc'),         "Left_To_Right");
+is($charinfo->{decomposition},  "");
+is(charprop($cp, 'dm'),         "\x{9FBA}");
+is($charinfo->{decimal},        "");
+is($charinfo->{digit},          "");
+is($charinfo->{numeric},        "");
+is(charprop($cp, 'nv'),         "NaN");
+is($charinfo->{mirrored},       "N");
+is(charprop($cp, 'bidim'),      "No");
+is($charinfo->{unicode10},      "");
+is(charprop($cp, 'na1'),        "");
+is($charinfo->{comment},        "");
+is(charprop($cp, 'isc'),        "");
+is($charinfo->{upper},          "");
+is(charprop($cp, 'uc'),         "\x{9FBA}");
+is($charinfo->{lower},          "");
+is(charprop($cp, 'lc'),         "\x{9FBA}");
+is($charinfo->{title},          "");
+is(charprop($cp, 'tc'),         "\x{9FBA}");
+is($charinfo->{block},          "CJK Unified Ideographs");
+is(charprop($cp, 'block'),      "CJK_Unified_Ideographs");
+is($charinfo->{script},         "Han");
+is(charprop($cp, 'script'),     "Han");
 
 use Unicode::UCD qw(charblock charscript);
 
 # 0x0590 is in the Hebrew block but unused.
 
-is(charblock(0x590),          'Hebrew', '0x0590 - Hebrew unused charblock');
-is(charscript(0x590),         'Unknown',    '0x0590 - Hebrew unused charscript');
-is(charblock(0x1FFFF),        'No_Block', '0x1FFFF - unused charblock');
-
-$charinfo = charinfo(0xbe);
-
-is($charinfo->{code},           '00BE', 'VULGAR FRACTION THREE QUARTERS');
-is($charinfo->{name},           'VULGAR FRACTION THREE QUARTERS');
-is($charinfo->{category},       'No');
-is($charinfo->{combining},      '0');
-is($charinfo->{bidi},           'ON');
-is($charinfo->{decomposition},  '<fraction> 0033 2044 0034');
-is($charinfo->{decimal},        '');
-is($charinfo->{digit},          '');
-is($charinfo->{numeric},        '3/4');
-is($charinfo->{mirrored},       'N');
-is($charinfo->{unicode10},      'FRACTION THREE QUARTERS');
-is($charinfo->{comment},        '');
-is($charinfo->{upper},          '');
-is($charinfo->{lower},          '');
-is($charinfo->{title},          '');
-is($charinfo->{block},          'Latin-1 Supplement');
-is($charinfo->{script},         'Common');
+is(charblock(0x590),          "Hebrew", "0x0590 - Hebrew unused charblock");
+is(charscript(0x590),         "Unknown",    "0x0590 - Hebrew unused charscript");
+is(charblock(0x1FFFF),        "No_Block", "0x1FFFF - unused charblock");
+
+my $fraction_3_4_code = sprintf("%04X", utf8::unicode_to_native(0xbe));
+$cp = $fraction_3_4_code;
+$charinfo = charinfo(hex $fraction_3_4_code);
+
+is($charinfo->{code},           $fraction_3_4_code, "VULGAR FRACTION THREE QUARTERS");
+is($charinfo->{name},           "VULGAR FRACTION THREE QUARTERS");
+is(charprop($cp, 'name'),       "VULGAR FRACTION THREE QUARTERS");
+is($charinfo->{category},       "No");
+is(charprop($cp, 'gc'),         "Other_Number");
+is($charinfo->{combining},      "0");
+is(charprop($cp, 'ccc'),        "Not_Reordered");
+is($charinfo->{bidi},           "ON");
+is(charprop($cp, 'bc'),         "Other_Neutral");
+is($charinfo->{decomposition},  "<fraction> "
+                                . sprintf("%04X", ord "3")
+                                . " 2044 "
+                                . sprintf("%04X", ord "4"));
+is(charprop($cp, 'dm'),         "3\x{2044}4");
+is($charinfo->{decimal},        "");
+is($charinfo->{digit},          "");
+is($charinfo->{numeric},        "3/4");
+is(charprop($cp, 'nv'),        "0.75");
+is($charinfo->{mirrored},       "N");
+is(charprop($cp, 'bidim'),      "No");
+is($charinfo->{unicode10},      "FRACTION THREE QUARTERS");
+is(charprop($cp, 'na1'),        "FRACTION THREE QUARTERS");
+is($charinfo->{comment},        "");
+is(charprop($cp, 'isc'),        "");
+is($charinfo->{upper},          "");
+is(charprop($cp, 'uc'),         "\x{be}");
+is($charinfo->{lower},          "");
+is(charprop($cp, 'lc'),         "\x{be}");
+is($charinfo->{title},          "");
+is(charprop($cp, 'tc'),         "\x{be}");
+is($charinfo->{block},          "Latin-1 Supplement");
+is(charprop($cp, 'block'),      "Latin_1_Supplement");
+is($charinfo->{script},         "Common");
+is(charprop($cp, 'script'),     "Common");
 
 # This is to test a case where both simple and full lowercases exist and
 # differ
-$charinfo = charinfo(0x130);
-
-is($charinfo->{code},           '0130', 'LATIN CAPITAL LETTER I WITH DOT ABOVE');
-is($charinfo->{name},           'LATIN CAPITAL LETTER I WITH DOT ABOVE');
-is($charinfo->{category},       'Lu');
-is($charinfo->{combining},      '0');
-is($charinfo->{bidi},           'L');
-is($charinfo->{decomposition},  '0049 0307');
-is($charinfo->{decimal},        '');
-is($charinfo->{digit},          '');
-is($charinfo->{numeric},        '');
-is($charinfo->{mirrored},       'N');
-is($charinfo->{unicode10},      'LATIN CAPITAL LETTER I DOT');
-is($charinfo->{comment},        '');
-is($charinfo->{upper},          '');
-is($charinfo->{lower},          '0069');
-is($charinfo->{title},          '');
-is($charinfo->{block},          'Latin Extended-A');
-is($charinfo->{script},         'Latin');
+$cp = 0x130;
+$charinfo = charinfo($cp);
+my $I_code = sprintf("%04X", ord("I"));
+my $i_code = sprintf("%04X", ord("i"));
+
+is($charinfo->{code},           "0130", "LATIN CAPITAL LETTER I WITH DOT ABOVE");
+is($charinfo->{name},           "LATIN CAPITAL LETTER I WITH DOT ABOVE");
+is(charprop($cp, 'name'),       "LATIN CAPITAL LETTER I WITH DOT ABOVE");
+is($charinfo->{category},       "Lu");
+is(charprop($cp, 'gc'),         "Uppercase_Letter");
+is($charinfo->{combining},      "0");
+is(charprop($cp, 'ccc'),        "Not_Reordered");
+is($charinfo->{bidi},           "L");
+is(charprop($cp, 'bc'),         "Left_To_Right");
+is($charinfo->{decomposition},  "$I_code 0307");
+is(charprop($cp, 'dm'),         "I\x{0307}");
+is($charinfo->{decimal},        "");
+is($charinfo->{digit},          "");
+is($charinfo->{numeric},        "");
+is(charprop($cp, 'nv'),         "NaN");
+is($charinfo->{mirrored},       "N");
+is(charprop($cp, 'bidim'),      "No");
+is($charinfo->{unicode10},      "LATIN CAPITAL LETTER I DOT");
+is(charprop($cp, 'na1'),        "LATIN CAPITAL LETTER I DOT");
+is($charinfo->{comment},        "");
+is(charprop($cp, 'isc'),        "");
+is($charinfo->{upper},          "");
+is(charprop($cp, 'uc'),         "\x{130}");
+is($charinfo->{lower},          $i_code);
+is(charprop($cp, 'lc'),         "i\x{307}");
+is($charinfo->{title},          "");
+is(charprop($cp, 'tc'),         "\x{130}");
+is($charinfo->{block},          "Latin Extended-A");
+is(charprop($cp, 'block'),      "Latin_Extended_A");
+is($charinfo->{script},         "Latin");
+is(charprop($cp, 'script'),     "Latin");
 
 # This is to test a case where both simple and full uppercases exist and
 # differ
-$charinfo = charinfo(0x1F80);
-
-is($charinfo->{code},           '1F80', 'GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI');
-is($charinfo->{name},           'GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI');
-is($charinfo->{category},       'Ll');
-is($charinfo->{combining},      '0');
-is($charinfo->{bidi},           'L');
-is($charinfo->{decomposition},  '1F00 0345');
-is($charinfo->{decimal},        '');
-is($charinfo->{digit},          '');
-is($charinfo->{numeric},        '');
-is($charinfo->{mirrored},       'N');
-is($charinfo->{unicode10},      '');
-is($charinfo->{comment},        '');
-is($charinfo->{upper},          '1F88');
-is($charinfo->{lower},          '');
-is($charinfo->{title},          '1F88');
-is($charinfo->{block},          'Greek Extended');
-is($charinfo->{script},         'Greek');
+$cp = 0x1F80;
+$charinfo = charinfo($cp);
+
+is($charinfo->{code},           "1F80", "GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI");
+is($charinfo->{name},           "GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI");
+is(charprop($cp, "name"),       "GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI");
+is($charinfo->{category},       "Ll");
+is(charprop($cp, "gc"),         "Lowercase_Letter");
+is($charinfo->{combining},      "0");
+is(charprop($cp, "ccc"),        "Not_Reordered");
+is($charinfo->{bidi},           "L");
+is(charprop($cp, "bc"),         "Left_To_Right");
+is($charinfo->{decomposition},  "1F00 0345");
+is(charprop($cp, "dm"),         "\x{1F00}\x{0345}");
+is($charinfo->{decimal},        "");
+is($charinfo->{digit},          "");
+is($charinfo->{numeric},        "");
+is(charprop($cp, "nv"),         "NaN");
+is($charinfo->{mirrored},       "N");
+is(charprop($cp, "bidim"),      "No");
+is($charinfo->{unicode10},      "");
+is(charprop($cp, "na1"),        "");
+is($charinfo->{comment},        "");
+is(charprop($cp, "isc"),        "");
+is($charinfo->{upper},          "1F88");
+is(charprop($cp, "uc"),         "\x{1F08}\x{0399}");
+is(charprop($cp, "suc"),        "\x{1F88}");
+is($charinfo->{lower},          "");
+is(charprop($cp, "lc"),         "\x{1F80}");
+is($charinfo->{title},          "1F88");
+is(charprop($cp, "tc"),         "\x{1F88}");
+is($charinfo->{block},          "Greek Extended");
+is(charprop($cp, "block"),      "Greek_Extended");
+is($charinfo->{script},         "Greek");
+is(charprop($cp, "script"),     "Greek");
+
+is(charprop(ord("A"), "foo"),    undef,
+                        "Verify charprop of unknown property returns <undef>");
+
+# These were created from inspection of the code to exercise the branches
+is(charprop(ord("("), "bpb"),    ")",
+            "Verify charprop figures out that s-type properties can be char");
+is(charprop(ord("9"), "nv"),     9,
+                            "Verify charprop can adjust an ar-type property");
+is(charprop(utf8::unicode_to_native(0xAD), "NFKC_Casefold"), "",
+                    "Verify charprop can handle an \"\" in ae-type property");
+
+my $mark_props_ref = charprops_all(0x300);
+is($mark_props_ref->{'Bidi_Class'}, "Nonspacing_Mark",
+                                    "Next tests are charprops_all of 0x300");
+is($mark_props_ref->{'Bidi_Mirrored'}, "No");
+is($mark_props_ref->{'Canonical_Combining_Class'}, "Above");
+is($mark_props_ref->{'Case_Folding'}, "\x{300}");
+is($mark_props_ref->{'Decomposition_Mapping'}, "\x{300}");
+is($mark_props_ref->{'Decomposition_Type'}, "None");
+is($mark_props_ref->{'General_Category'}, "Nonspacing_Mark");
+is($mark_props_ref->{'ISO_Comment'}, "");
+is($mark_props_ref->{'Lowercase_Mapping'}, "\x{300}");
+is($mark_props_ref->{'Name'}, "COMBINING GRAVE ACCENT");
+is($mark_props_ref->{'Numeric_Type'}, "None");
+is($mark_props_ref->{'Numeric_Value'}, "NaN");
+is($mark_props_ref->{'Simple_Case_Folding'}, "\x{300}");
+is($mark_props_ref->{'Simple_Lowercase_Mapping'}, "\x{300}");
+is($mark_props_ref->{'Simple_Titlecase_Mapping'}, "\x{300}");
+is($mark_props_ref->{'Simple_Uppercase_Mapping'}, "\x{300}");
+is($mark_props_ref->{'Titlecase_Mapping'}, "\x{300}");
+is($mark_props_ref->{'Unicode_1_Name'}, "NON-SPACING GRAVE");
+is($mark_props_ref->{'Uppercase_Mapping'}, "\x{300}");
 
 use Unicode::UCD qw(charblocks charscripts);
 
@@ -359,23 +584,26 @@ use Unicode::UCD qw(casefold);
 
 my $casefold;
 
-$casefold = casefold(0x41);
+$casefold = casefold(utf8::unicode_to_native(0x41));
 
-is($casefold->{code}, '0041', 'casefold 0x41 code');
-is($casefold->{status}, 'C', 'casefold 0x41 status');
-is($casefold->{mapping}, '0061', 'casefold 0x41 mapping');
-is($casefold->{full}, '0061', 'casefold 0x41 full');
-is($casefold->{simple}, '0061', 'casefold 0x41 simple');
-is($casefold->{turkic}, "", 'casefold 0x41 turkic');
+is($casefold->{code}, $A_code, 'casefold native(0x41) code');
+is($casefold->{status}, 'C', 'casefold native(0x41) status');
+is($casefold->{mapping}, $a_code, 'casefold native(0x41) mapping');
+is($casefold->{full}, $a_code, 'casefold native(0x41) full');
+is($casefold->{simple}, $a_code, 'casefold native(0x41) simple');
+is($casefold->{turkic}, "", 'casefold native(0x41) turkic');
 
-$casefold = casefold(0xdf);
+$casefold = casefold(utf8::unicode_to_native(0xdf));
+my $sharp_s_code = sprintf("%04X", utf8::unicode_to_native(0xdf));
+my $S_code = sprintf("%04X", ord "S");
+my $s_code = sprintf("%04X", ord "s");
 
-is($casefold->{code}, '00DF', 'casefold 0xDF code');
-is($casefold->{status}, 'F', 'casefold 0xDF status');
-is($casefold->{mapping}, '0073 0073', 'casefold 0xDF mapping');
-is($casefold->{full}, '0073 0073', 'casefold 0xDF full');
-is($casefold->{simple}, "", 'casefold 0xDF simple');
-is($casefold->{turkic}, "", 'casefold 0xDF turkic');
+is($casefold->{code}, $sharp_s_code, 'casefold native(0xDF) code');
+is($casefold->{status}, 'F', 'casefold native(0xDF) status');
+is($casefold->{mapping}, "$s_code $s_code", 'casefold native(0xDF) mapping');
+is($casefold->{full}, "$s_code $s_code", 'casefold native(0xDF) full');
+is($casefold->{simple}, "", 'casefold native(0xDF) simple');
+is($casefold->{turkic}, "", 'casefold native(0xDF) turkic');
 
 # Do different tests depending on if version < 3.2, or not.
 my $v_unicode_version = pack "C*", split /\./, Unicode::UCD::UnicodeVersion();
@@ -384,37 +612,37 @@ if ($v_unicode_version lt v3.2.0) {
 
        is($casefold->{code}, '0130', 'casefold 0x130 code');
        is($casefold->{status}, 'I' , 'casefold 0x130 status');
-       is($casefold->{mapping}, '0069', 'casefold 0x130 mapping');
-       is($casefold->{full}, '0069', 'casefold 0x130 full');
-       is($casefold->{simple}, "0069", 'casefold 0x130 simple');
-       is($casefold->{turkic}, "0069", 'casefold 0x130 turkic');
+       is($casefold->{mapping}, $i_code, 'casefold 0x130 mapping');
+       is($casefold->{full}, $i_code, 'casefold 0x130 full');
+       is($casefold->{simple}, $i_code, 'casefold 0x130 simple');
+       is($casefold->{turkic}, $i_code, 'casefold 0x130 turkic');
 
        $casefold = casefold(0x131);
 
        is($casefold->{code}, '0131', 'casefold 0x131 code');
        is($casefold->{status}, 'I' , 'casefold 0x131 status');
-       is($casefold->{mapping}, '0069', 'casefold 0x131 mapping');
-       is($casefold->{full}, '0069', 'casefold 0x131 full');
-       is($casefold->{simple}, "0069", 'casefold 0x131 simple');
-       is($casefold->{turkic}, "0069", 'casefold 0x131 turkic');
+       is($casefold->{mapping}, $i_code, 'casefold 0x131 mapping');
+       is($casefold->{full}, $i_code, 'casefold 0x131 full');
+       is($casefold->{simple}, $i_code, 'casefold 0x131 simple');
+       is($casefold->{turkic}, $i_code, 'casefold 0x131 turkic');
 } else {
-       $casefold = casefold(0x49);
+       $casefold = casefold(utf8::unicode_to_native(0x49));
 
-       is($casefold->{code}, '0049', 'casefold 0x49 code');
-       is($casefold->{status}, 'C' , 'casefold 0x49 status');
-       is($casefold->{mapping}, '0069', 'casefold 0x49 mapping');
-       is($casefold->{full}, '0069', 'casefold 0x49 full');
-       is($casefold->{simple}, "0069", 'casefold 0x49 simple');
-       is($casefold->{turkic}, "0131", 'casefold 0x49 turkic');
+       is($casefold->{code}, $I_code, 'casefold native(0x49) code');
+       is($casefold->{status}, 'C' , 'casefold native(0x49) status');
+       is($casefold->{mapping}, $i_code, 'casefold native(0x49) mapping');
+       is($casefold->{full}, $i_code, 'casefold native(0x49) full');
+       is($casefold->{simple}, $i_code, 'casefold native(0x49) simple');
+       is($casefold->{turkic}, "0131", 'casefold native(0x49) turkic');
 
        $casefold = casefold(0x130);
 
        is($casefold->{code}, '0130', 'casefold 0x130 code');
        is($casefold->{status}, 'F' , 'casefold 0x130 status');
-       is($casefold->{mapping}, '0069 0307', 'casefold 0x130 mapping');
-       is($casefold->{full}, '0069 0307', 'casefold 0x130 full');
+       is($casefold->{mapping}, "$i_code 0307", 'casefold 0x130 mapping');
+       is($casefold->{full}, "$i_code 0307", 'casefold 0x130 full');
        is($casefold->{simple}, "", 'casefold 0x130 simple');
-       is($casefold->{turkic}, "0069", 'casefold 0x130 turkic');
+       is($casefold->{turkic}, $i_code, 'casefold 0x130 turkic');
 }
 
 $casefold = casefold(0x1F88);
@@ -426,21 +654,21 @@ is($casefold->{full}, '1F00 03B9', 'casefold 0x1F88 full');
 is($casefold->{simple}, '1F80', 'casefold 0x1F88 simple');
 is($casefold->{turkic}, "", 'casefold 0x1F88 turkic');
 
-ok(!casefold(0x20));
+ok(!casefold(utf8::unicode_to_native(0x20)));
 
 use Unicode::UCD qw(casespec);
 
 my $casespec;
 
-ok(!casespec(0x41));
+ok(!casespec(utf8::unicode_to_native(0x41)));
 
-$casespec = casespec(0xdf);
+$casespec = casespec(utf8::unicode_to_native(0xdf));
 
-ok($casespec->{code} eq '00DF' &&
-   $casespec->{lower} eq '00DF'  &&
-   $casespec->{title} eq '0053 0073'  &&
-   $casespec->{upper} eq '0053 0053' &&
-   !defined $casespec->{condition}, 'casespec 0xDF');
+ok($casespec->{code} eq $sharp_s_code &&
+   $casespec->{lower} eq $sharp_s_code  &&
+   $casespec->{title} eq "$S_code $s_code"  &&
+   $casespec->{upper} eq "$S_code $S_code" &&
+   !defined $casespec->{condition}, 'casespec native(0xDF)');
 
 $casespec = casespec(0x307);
 
@@ -475,7 +703,7 @@ is(Unicode::UCD::_getcode('U+123x'),  undef, "_getcode(x123)");
     my $r1 = charscript('Latin');
     if (ok(defined $r1, "Found Latin script")) {
         my $n1 = @$r1;
-        is($n1, 33, "number of ranges in Latin script (Unicode 7.0.0)");
+        is($n1, 33, "number of ranges in Latin script (Unicode 7.0.0)") if $::IS_ASCII;
         shift @$r1 while @$r1;
         my $r2 = charscript('Latin');
         is(@$r2, $n1, "modifying results should not mess up internal caches");
@@ -507,6 +735,8 @@ use charnames ":full";
 is(num("0"), 0, 'Verify num("0") == 0');
 is(num("98765"), 98765, 'Verify num("98765") == 98765');
 ok(! defined num("98765\N{FULLWIDTH DIGIT FOUR}"), 'Verify num("98765\N{FULLWIDTH DIGIT FOUR}") isnt defined');
+is(num("\N{NEW TAI LUE DIGIT TWO}"), 2, 'Verify num("\N{NEW TAI LUE DIGIT TWO}") == 2');
+is(num("\N{NEW TAI LUE DIGIT ONE}"), 1, 'Verify num("\N{NEW TAI LUE DIGIT ONE}") == 1');
 is(num("\N{NEW TAI LUE DIGIT TWO}\N{NEW TAI LUE DIGIT ONE}"), 21, 'Verify num("\N{NEW TAI LUE DIGIT TWO}\N{NEW TAI LUE DIGIT ONE}") == 21');
 ok(! defined num("\N{NEW TAI LUE DIGIT TWO}\N{NEW TAI LUE THAM DIGIT ONE}"), 'Verify num("\N{NEW TAI LUE DIGIT TWO}\N{NEW TAI LUE THAM DIGIT ONE}") isnt defined');
 is(num("\N{CHAM DIGIT ZERO}\N{CHAM DIGIT THREE}"), 3, 'Verify num("\N{CHAM DIGIT ZERO}\N{CHAM DIGIT THREE}") == 3');
@@ -678,6 +908,15 @@ foreach my $alias (sort keys %utf8::loose_to_file_of) {
     }
 }
 
+# Some of the Perl extensions should always be built; make sure they have the
+# correct full name, etc.
+for my $prop (qw(Alnum Blank Cntrl Digit Graph Print Word XDigit)) {
+    my @expected = ( $prop, "XPosix$prop" );
+    my @got = prop_aliases($prop);
+    splice @got, 2;
+    is_deeply(\@got, \@expected, "Got expected aliases for $prop");
+}
+
 my $done_equals = 0;
 foreach my $alias (keys %utf8::stricter_to_file_of) {
     if ($alias =~ /=/) {    # Only test one case where there is an equals
@@ -698,7 +937,7 @@ foreach my $alias (keys %utf8::stricter_to_file_of) {
     }
 }
 
-use Unicode::UCD qw(prop_value_aliases);
+use Unicode::UCD qw(prop_values prop_value_aliases);
 
 is(prop_value_aliases("unknown property", "unknown value"), undef,
     "prop_value_aliases(<unknown property>, <unknown value>) returns <undef>");
@@ -707,6 +946,8 @@ is(prop_value_aliases(undef, undef), undef,
 is((prop_value_aliases("na", "A")), "A", "test that prop_value_aliases returns its input for properties that don't have synonyms");
 is(prop_value_aliases("isgc", "C"), undef, "prop_value_aliases('isgc', 'C') returns <undef> since is not covered Perl extension");
 is(prop_value_aliases("gc", "isC"), undef, "prop_value_aliases('gc', 'isC') returns <undef> since is not covered Perl extension");
+is(prop_value_aliases("Any", "None"), undef, "prop_value_aliases('Any', 'None') returns <undef> since is Perl extension and 'None' is not valid");
+is(prop_value_aliases("lc", "A"), "A", "prop_value_aliases('lc', 'A') returns its input, as docs say it does");
 
 # We have no way of knowing if mktables omitted a Perl extension that it
 # shouldn't have, but we can check if it omitted an official Unicode property
@@ -720,6 +961,12 @@ skip "PropValueAliases.txt is not in this Unicode version", 1 if $v_unicode_vers
 open my $propvalues, "<", "../lib/unicore/PropValueAliases.txt"
      or die "Can't open Unicode PropValueAliases.txt";
 local $/ = "\n";
+
+# Each examined line in the file is for a single value for a property.  We
+# accumulate all the values for each property using these two variables.
+my $prev_prop = "";
+my @this_prop_values;
+
 while (<$propvalues>) {
     s/\s*#.*//;           # Remove comments
     next if /^\s* $/x;    # Ignore empty and comment lines
@@ -731,6 +978,27 @@ while (<$propvalues>) {
 
     my @fields = split /\s*;\s*/; # Fields are separated by semi-colons
     my $prop = shift @fields;   # 0th field is the property,
+
+    # When changing properties, we examine the accumulated values for the old
+    # one to see if our function that returns them matches.
+    if ($prev_prop ne $prop) {
+        if ($prev_prop ne "") { # Skip for the first time through
+            my @ucd_function_values = prop_values($prev_prop);
+            @ucd_function_values = () unless @ucd_function_values;
+
+            # This perl extension doesn't appear in the official file
+            push @this_prop_values, "Non_Canon" if $prev_prop eq 'dt';
+
+            my @file_values = undef;
+            @file_values = sort { lc($a =~ s/_//gr) cmp lc($b =~ s/_//gr) }
+                                   @this_prop_values if @this_prop_values;
+            is_deeply(\@ucd_function_values, \@file_values,
+              "prop_values('$prev_prop') returns correct list of values");
+        }
+        $prev_prop = $prop;
+        undef @this_prop_values;
+    }
+
     my $count = 0;  # 0th field in line (after shifting off the property) is
                     # short name; 1th is long name
     my $short_name;
@@ -765,6 +1033,7 @@ while (<$propvalues>) {
     my $loose_prop = &utf8::_loose_name(lc $prop);
     my $suppressed = grep { $_ eq $loose_prop }
                           @Unicode::UCD::suppressed_properties;
+    push @this_prop_values, $fields[0] unless $suppressed;
     foreach my $value (@fields) {
         if ($suppressed) {
             is(prop_value_aliases($prop, $value), undef, "prop_value_aliases('$prop', '$value') returns undef for suppressed property $prop");
@@ -893,8 +1162,13 @@ use Unicode::UCD qw(prop_invlist prop_invmap MAX_CP);
 # elements are; just look at the first element to see if are getting the
 # distinction right.  The general inversion map testing below will test the
 # whole thing.
-my $prop = "uc";
-my ($invlist_ref, $invmap_ref, $format, $missing) = prop_invmap($prop);
+
+my $prop;
+my ($invlist_ref, $invmap_ref, $format, $missing);
+if ($::IS_ASCII) { # On EBCDIC, other things will come first, and can vary
+                # according to code page
+$prop = "uc";
+($invlist_ref, $invmap_ref, $format, $missing) = prop_invmap($prop);
 is($format, 'al', "prop_invmap() format of '$prop' is 'al'");
 is($missing, '0', "prop_invmap() missing of '$prop' is '0'");
 is($invlist_ref->[1], 0x61, "prop_invmap('$prop') list[1] is 0x61");
@@ -920,15 +1194,30 @@ is($format, 'al', "prop_invmap() format of '$prop' is 'al'");
 is($missing, '0', "prop_invmap() missing of '$prop' is '0'");
 is($invlist_ref->[1], 0x41, "prop_invmap('$prop') list[1] is 0x41");
 is($invmap_ref->[1], 0x61, "prop_invmap('$prop') map[1] is 0x61");
+}
 
 # This property is stable and small, so can test all of it
 $prop = "ASCII_Hex_Digit";
 ($invlist_ref, $invmap_ref, $format, $missing) = prop_invmap($prop);
 is($format, 's', "prop_invmap() format of '$prop' is 's'");
 is($missing, 'N', "prop_invmap() missing of '$prop' is 'N'");
-is_deeply($invlist_ref, [ 0x0000, 0x0030, 0x003A, 0x0041,
-                          0x0047, 0x0061, 0x0067, 0x110000 ],
+if ($::IS_ASCII) {
+    is_deeply($invlist_ref, [ 0x0000, 0x0030, 0x003A,
+                              0x0041, 0x0047,
+                              0x0061, 0x0067, 0x110000
+                            ],
           "prop_invmap('$prop') code point list is correct");
+}
+elsif ($::IS_EBCDIC) {
+    is_deeply($invlist_ref, [
+            utf8::unicode_to_native(0x0000),
+            utf8::unicode_to_native(0x0061), utf8::unicode_to_native(0x0066) + 1,
+            utf8::unicode_to_native(0x0041), utf8::unicode_to_native(0x0046) + 1,
+            utf8::unicode_to_native(0x0030), utf8::unicode_to_native(0x0039) + 1,
+            utf8::unicode_to_native(0x110000)
+          ],
+          "prop_invmap('$prop') code point list is correct");
+}
 is_deeply($invmap_ref, [ 'N', 'Y', 'N', 'Y', 'N', 'Y', 'N', 'N' ] ,
           "prop_invmap('$prop') map list is correct");
 
@@ -951,14 +1240,37 @@ is(prop_invlist("InKana"), undef, "prop_invlist(<user-defined property returns u
 # are there in the files.  As a small hedge against that, test some
 # prop_invlist() tables fully with the known correct result.  We choose
 # ASCII_Hex_Digit again, as it is stable.
-@invlist = prop_invlist("AHex");
-is_deeply(\@invlist, [ 0x0030, 0x003A, 0x0041,
+if ($::IS_ASCII) {
+    @invlist = prop_invlist("AHex");
+    is_deeply(\@invlist, [ 0x0030, 0x003A, 0x0041,
                                  0x0047, 0x0061, 0x0067 ],
           "prop_invlist('AHex') is exactly the expected set of points");
-@invlist = prop_invlist("AHex=f");
-is_deeply(\@invlist, [ 0x0000, 0x0030, 0x003A, 0x0041,
+    @invlist = prop_invlist("AHex=f");
+    is_deeply(\@invlist, [ 0x0000, 0x0030, 0x003A, 0x0041,
                                  0x0047, 0x0061, 0x0067 ],
           "prop_invlist('AHex=f') is exactly the expected set of points");
+}
+elsif ($::IS_EBCDIC) { # Relies on the ranges 0-9, a-f, and A-F each being
+                    # contiguous
+    @invlist = prop_invlist("AHex");
+    is_deeply(\@invlist, [
+            utf8::unicode_to_native(0x0061), utf8::unicode_to_native(0x0066) + 1,
+            utf8::unicode_to_native(0x0041), utf8::unicode_to_native(0x0046) + 1,
+            utf8::unicode_to_native(0x0030), utf8::unicode_to_native(0x0039) + 1,
+       ],
+       "prop_invlist('AHex') is exactly the expected set of points");
+    @invlist = prop_invlist("AHex=f");
+    is_deeply(\@invlist, [
+            utf8::unicode_to_native(0x0000),
+            utf8::unicode_to_native(0x0061),
+            utf8::unicode_to_native(0x0066) + 1,
+            utf8::unicode_to_native(0x0041),
+            utf8::unicode_to_native(0x0046) + 1,
+            utf8::unicode_to_native(0x0030),
+            utf8::unicode_to_native(0x0039) + 1,
+       ],
+       "prop_invlist('AHex=f') is exactly the expected set of points");
+}
 
 sub fail_with_diff ($$$$) {
     # For use below to output better messages
@@ -1452,23 +1764,46 @@ foreach my $prop (sort(keys %props), sort keys %legacy_props) {
         if ($name eq 'blk') {
 
             # The blk property is special.  The original file with old block
-            # names is retained, and the default is to not write out a
-            # new-name file.  What we do is get the old names into a data
-            # structure, and from that create what the new file would look
-            # like.  $base_file is needed to be defined, just to avoid a
-            # message below.
+            # names is retained, and the default (on ASCII platforms) is to
+            # not write out a new-name file.  What we do is get the old names
+            # into a data structure, and from that create what the new file
+            # would look like.  $base_file is needed to be defined, just to
+            # avoid a message below.
             $base_file = "This is a dummy name";
             my $blocks_ref = charblocks();
+
+            if ($::IS_EBCDIC) {
+                # On EBCDIC, the first two blocks can each contain multiple
+                # ranges.  We create a new version with each of these
+                # flattened, so have one level.  ($index is used as a dummy
+                # key.)
+                my %new_blocks;
+                my $index = 0;
+                foreach my $block (values %$blocks_ref) {
+                    foreach my $range (@$block) {
+                        $new_blocks{$index++}[0] = $range;
+                    }
+                }
+                $blocks_ref = \%new_blocks;
+            }
             $official = "";
             for my $range (sort { $a->[0][0] <=> $b->[0][0] }
                            values %$blocks_ref)
             {
                 # Translate the charblocks() data structure to what the file
-                # would like.
-                $official .= sprintf"%X\t%X\t%s\n",
-                             $range->[0][0],
-                             $range->[0][1],
-                             $range->[0][2];
+                # would look like.  (The sub range is for EBCDIC platforms
+                # where Latin1 and ASCII are intermixed.)
+                if ($range->[0][0] == $range->[0][1]) {
+                    $official .= sprintf("%X\t\t%s\n",
+                                         $range->[0][0],
+                                         $range->[0][2]);
+                }
+                else {
+                    $official .= sprintf("%X\t%X\t%s\n",
+                                         $range->[0][0],
+                                         $range->[0][1],
+                                         $range->[0][2]);
+                }
             }
         }
         else {
@@ -1587,10 +1922,13 @@ foreach my $prop (sort(keys %props), sort keys %legacy_props) {
             # including the ones that are overridden by the specials.  These
             # need to be removed as the list is for just the full ones.
 
-            # Go through any special mappings one by one.  They are packed.
+            # Go through any special mappings one by one.  The keys are the
+            # UTF-8 representation of code points.
             my $i = 0;
             foreach my $utf8_cp (sort keys %$specials_ref) {
-                my $cp = unpack("C0U", $utf8_cp);
+                my $cp = $utf8_cp;
+                utf8::decode($cp);
+                $cp = ord $cp;
 
                 # Find the spot in the @list of simple mappings that this
                 # special applies to; uses a linear search.
@@ -1736,17 +2074,18 @@ foreach my $prop (sort(keys %props), sort keys %legacy_props) {
                 elsif ($format =~ / ^ al e? $/x) {
 
                     # For an al property, the stringified result should be in
-                    # the specials hash.  The key is the packed code point,
-                    # and the value is the packed map.
+                    # the specials hash.  The key is the utf8 bytes of the
+                    # code point, and the value is its map as a utf-8 string.
                     my $value;
-                    if (! defined ($value = delete $specials{pack("C0U",
-                                                        $invlist_ref->[$i]) }))
-                    {
+                    my $key = chr $invlist_ref->[$i];
+                    utf8::encode($key);
+                    if (! defined ($value = delete $specials{$key})) {
                         fail("prop_invmap('$display_prop')");
                         diag(sprintf "There was no specials element for %04X", $invlist_ref->[$i]);
                         next PROPERTY;
                     }
-                    my $packed = pack "U*", @{$invmap_ref->[$i]};
+                    my $packed = pack "W*", @{$invmap_ref->[$i]};
+                    utf8::upgrade($packed);
                     if ($value ne $packed) {
                         fail("prop_invmap('$display_prop')");
                         diag(sprintf "For %04X, expected the mapping to be "
@@ -1814,12 +2153,12 @@ foreach my $prop (sort(keys %props), sort keys %legacy_props) {
                 if ($format eq 'ale' && $invmap_ref->[$i] eq "") {
 
                     # ale properties have maps to the empty string that also
-                    # should be in the specials hash, with the key the packed
-                    # code point, and the map just empty.
+                    # should be in the specials hash, with the key the utf8
+                    # bytes representing the code point, and the map just empty.
                     my $value;
-                    if (! defined ($value = delete $specials{pack("C0U",
-                                                        $invlist_ref->[$i]) }))
-                    {
+                    my $key = chr $invlist_ref->[$i];
+                    utf8::encode($key);
+                    if (! defined ($value = delete $specials{$key})) {
                         fail("prop_invmap('$display_prop')");
                         diag(sprintf "There was no specials element for %04X", $invlist_ref->[$i]);
                         next PROPERTY;
@@ -1958,8 +2297,14 @@ foreach my $prop (sort(keys %props), sort keys %legacy_props) {
         # shouldn't be in the property.  This gets rid of the two ranges in
         # one fell swoop, and also all the Unicode1_Name values that may not
         # be in Name_Alias.
-        $official =~ s/ 00000 \t .* 0001F .*? \n//xs;
-        $official =~ s/ 0007F \t .* 0009F .*? \n//xs;
+        if ($::IS_ASCII) {
+            $official =~ s/ 00000 \t .* 0001F .*? \n//xs;
+            $official =~ s/ 0007F \t .* 0009F .*? \n//xs;
+        }
+        elsif ($::IS_EBCDIC) { # Won't work for POSIX-BC
+            $official =~ s/ 00000 \t .* 0003F .*? \n//xs;
+            $official =~ s/ 000FF \t .* 000FF .*? \n//xs;
+        }
 
         # And remove the aliases.  We read in the Name_Alias property, and go
         # through them one by one.
index de237b7..70d8ada 100644 (file)
@@ -5,13 +5,14 @@
 
 package feature;
 
-our $VERSION = '1.39';
+our $VERSION = '1.40';
 
 our %feature = (
     fc              => 'feature_fc',
     say             => 'feature_say',
     state           => 'feature_state',
     switch          => 'feature_switch',
+    bitwise         => 'feature_bitwise',
     evalbytes       => 'feature_evalbytes',
     postderef       => 'feature_postderef',
     array_base      => 'feature_arybase',
@@ -28,7 +29,7 @@ our %feature_bundle = (
     "5.10"    => [qw(array_base say state switch)],
     "5.11"    => [qw(array_base say state switch unicode_strings)],
     "5.15"    => [qw(current_sub evalbytes fc say state switch unicode_eval unicode_strings)],
-    "all"     => [qw(array_base current_sub evalbytes fc lexical_subs postderef postderef_qq refaliasing say signatures state switch unicode_eval unicode_strings)],
+    "all"     => [qw(array_base bitwise current_sub evalbytes fc lexical_subs postderef postderef_qq refaliasing say signatures state switch unicode_eval unicode_strings)],
     "default" => [qw(array_base)],
 );
 
@@ -319,6 +320,24 @@ See L<perlref/Assigning to References> for details.
 
 This feature is available from Perl 5.22 onwards.
 
+=head2 The 'bitwise' feature
+
+B<WARNING>: This feature is still experimental and the implementation may
+change in future versions of Perl.  For this reason, Perl will
+warn when you use the feature, unless you have explicitly disabled the
+warning:
+
+    no warnings "experimental::bitwise";
+
+This makes the four standard bitwise operators (C<& | ^ ~>) treat their
+operands consistently as numbers, and introduces four new dotted operators
+(C<&. |. ^. ~.>) that treat their operands consistently as strings.  The
+same applies to the assignment variants (C<&= |= ^= &.= |.= ^.=>).
+
+See L<perlop/Bitwise String Operators> for details.
+
+This feature is available from Perl 5.22 onwards.
+
 =head1 FEATURE BUNDLES
 
 It's possible to load multiple features together, using
index dc37380..414c386 100644 (file)
@@ -1,6 +1,6 @@
 package overload;
 
-our $VERSION = '1.24';
+our $VERSION = '1.25';
 
 %ops = (
     with_assign         => "+ - * / % ** << >> x .",
@@ -8,8 +8,8 @@ our $VERSION = '1.24';
     num_comparison      => "< <= >  >= == !=",
     '3way_comparison'   => "<=> cmp",
     str_comparison      => "lt le gt ge eq ne",
-    binary              => '& &= | |= ^ ^=',
-    unary               => "neg ! ~",
+    binary              => '& &= | |= ^ ^= &. &.= |. |.= ^. ^.=',
+    unary               => "neg ! ~ ~.",
     mutators            => '++ --',
     func                => "atan2 cos sin exp abs log sqrt int",
     conversion          => 'bool "" 0+ qr',
@@ -252,7 +252,9 @@ illustrates the calling conventions:
     # * may recurse once - see table below
 
 Three arguments are passed to all subroutines specified in the
-C<use overload> directive (with one exception - see L</nomethod>).
+C<use overload> directive (with exceptions - see below, particularly
+L</nomethod>).
+
 The first of these is the operand providing the overloaded
 operator implementation -
 in this case, the object whose C<minus()> method is being called.
@@ -310,6 +312,12 @@ An appropriate implementation of C<--> might look like
         # ...
     sub decr { --${$_[0]}; }
 
+If the experimental "bitwise" feature is enabled (see L<feature>), a fifth
+TRUE argument is passed to subroutines handling C<&>, C<|>, C<^> and C<~>.
+This indicates that the caller is expecting numeric behaviour.  The fourth
+argument will be C<undef>, as that position (C<$_[3]>) is reserved for use
+by L</nomethod>.
+
 =head3 Mathemagic, Mutators, and Copy Constructors
 
 The term 'mathemagic' describes the overloaded implementation
@@ -361,8 +369,8 @@ hash C<%overload::ops>:
  num_comparison          => '< <= > >= == !=',
  '3way_comparison'=> '<=> cmp',
  str_comparison          => 'lt le gt ge eq ne',
- binary                  => '& &= | |= ^ ^=',
- unary           => 'neg ! ~',
+ binary                  => '& &= | |= ^ ^= &. &.= |. |.= ^. ^.=',
+ unary           => 'neg ! ~ ~.',
  mutators        => '++ --',
  func            => 'atan2 cos sin exp abs log sqrt int',
  conversion      => 'bool "" 0+ qr',
@@ -407,7 +415,7 @@ evaluating an expression.
 =item * I<Assignments>
 
     +=  -=  *=  /=  %=  **=  <<=  >>=  x=  .=
-    &=  |=  ^=
+    &=  |=  ^=  &.=  |.=  ^.=
 
 Simple assignment is not overloadable (the C<'='> key is used
 for the L<Copy Constructor>).
@@ -437,7 +445,7 @@ even if C<$a> is a scalar.
 =item * I<Non-mutators with a mutator variant>
 
      +  -  *  /  %  **  <<  >>  x  .
-     &  |  ^
+     &  |  ^  &.  |.  ^.
 
 As described L<above|"Calling Conventions and Magic Autogeneration">,
 Perl may call methods for operators like C<+> and C<&> in the course
@@ -650,9 +658,9 @@ to C<'-='> and C<'--'> above:
 And other assignment variations are analogous to
 C<'+='> and C<'-='> (and similar to C<'.='> and C<'x='> above):
 
-              operator ||  *= /= %= **= <<= >>= &= ^= |=
-    -------------------||--------------------------------
-    autogenerated from ||  *  /  %  **  <<  >>  &  ^  |
+              operator ||  *= /= %= **= <<= >>= &= ^= |= &.= ^.= |.=
+    -------------------||-------------------------------------------
+    autogenerated from ||  *  /  %  **  <<  >>  &  ^  |  &.  ^.  |.
 
 Note also that the copy constructor (key C<'='>) may be
 autogenerated, but only for objects based on scalars.
@@ -668,7 +676,7 @@ expects.  The minimal set is:
 
     + - * / % ** << >> x
     <=> cmp
-    & | ^ ~
+    & | ^ ~ &. |. ^. ~.
     atan2 cos sin exp log sqrt int
     "" 0+ bool
     ~~
@@ -686,7 +694,8 @@ The specified function will be passed four parameters.
 The first three arguments coincide with those that would have been
 passed to the corresponding method if it had been defined.
 The fourth argument is the C<use overload> key for that missing
-method.
+method.  If the experimental "bitwise" feature is enabled (see L<feature>),
+a fifth TRUE argument is passed to subroutines handling C<&>, C<|>, C<^> and C<~> to indicate that the caller is expecting numeric behaviour.
 
 For example, if C<$a> is an object blessed into a package declaring
 
@@ -1054,7 +1063,7 @@ the stashes, which are rarely used directly, thus should not slow down
 Perl.)
 
 If a package uses overload, it carries a special flag.  This flag is also
-set when new function are defined or @ISA is modified.  There will be a
+set when new functions are defined or @ISA is modified.  There will be a
 slight speed penalty on the very first operation thereafter that supports
 overloading, while the overload tables are updated.  If there is no
 overloading present, the flag is turned off.  Thus the only speed penalty
index 524d99f..6bbbb0b 100644 (file)
@@ -48,7 +48,7 @@ package main;
 
 $| = 1;
 BEGIN { require './test.pl' }
-plan tests => 5199;
+plan tests => 5215;
 
 use Scalar::Util qw(tainted);
 
@@ -2754,6 +2754,69 @@ is join(",", 1..3, scalar((bless([], 'xstack')) x 3, 1), 4..6),
   "1,2,3,1,4,5,6",
   '(...)x... in void cx with x overloaded [perl #121827]';
 
+package bitops {
+    our @o;
+    use overload do {
+       my %o;
+       for my $o (qw(& | ^ ~ &. |. ^. ~. &= |= ^= &.= |.= ^.=)) {
+           $o{$o} = sub {
+               ::ok !defined $_[3], "undef (or nonexistent) arg 3 for $o";
+               push @o, $o, scalar @_, $_[4]//'u';
+               $_[0]
+           }
+       }
+       %o, '=' => sub { bless [] };
+    }
+}
+{
+    use experimental 'bitwise';
+    my $o = bless [], bitops::;
+    $_ = $o & 0;
+    $_ = $o | 0;
+    $_ = $o ^ 0;
+    $_ = ~$o;
+    $_ = $o &. 0;
+    $_ = $o |. 0;
+    $_ = $o ^. 0;
+    $_ = ~.$o;
+    $o &= 0;
+    $o |= 0;
+    $o ^= 0;
+    $o &.= 0;
+    $o |.= 0;
+    $o ^.= 0;
+    # elems are in triplets: op, length of @_, numeric? (1/u for y/n)
+    is "@bitops::o", '& 5 1 | 5 1 ^ 5 1 ~ 5 1 &. 3 u |. 3 u ^. 3 u ~. 3 u '               . '&= 5 1 |= 5 1 ^= 5 1 &.= 3 u |.= 3 u ^.= 3 u',
+       'experimental "bitwise" ops'
+}
+package bitops2 {
+    our @o;
+    use overload
+        nomethod => sub { push @o, $_[3], scalar @_, $_[4]//'u'; $_[0] },
+       '=' => sub { bless [] };
+}
+{
+    use experimental 'bitwise';
+    my $o = bless [], bitops2::;
+    $_ = $o & 0;
+    $_ = $o | 0;
+    $_ = $o ^ 0;
+    $_ = ~$o;
+    $_ = $o &. 0;
+    $_ = $o |. 0;
+    $_ = $o ^. 0;
+    $_ = ~.$o;
+    $o &= 0;
+    $o |= 0;
+    $o ^= 0;
+    $o &.= 0;
+    $o |.= 0;
+    $o ^.= 0;
+    # elems are in triplets: op, length of @_, numeric? (1/u for y/n)
+    is "@bitops2::o", '& 5 1 | 5 1 ^ 5 1 ~ 5 1 &. 4 u |. 4 u ^. 4 u ~. 4 u '               . '&= 5 1 |= 5 1 ^= 5 1 &.= 4 u |.= 4 u ^.= 4 u',
+       'experimental "bitwise" ops with nomethod'
+}
+
 { # undefining the overload stash -- KEEP THIS TEST LAST
     package ant;
     use overload '+' => 'onion';
index a90c175..ccea9e1 100644 (file)
@@ -62,13 +62,20 @@ our @names = qw#
     (>>=
     (&
     (&=
+    (&.
+    (&.=
     (|
     (|=
+    (|.
+    (|.=
     (^
     (^=
+    (^.
+    (^.=
     (<=>
     (cmp
     (~
+    (~.
     (atan2
     (cos
     (sin
@@ -133,13 +140,20 @@ our @enums = qw#
     rshift_ass
     band
     band_ass
+    sband
+    sband_ass
     bor
     bor_ass
+    sbor
+    sbor_ass
     bxor
     bxor_ass
+    sbxor
+    sbxor_ass
     ncmp
     scmp
     compl
+    scompl
     atan2
     cos
     sin
diff --git a/lib/unicore/auxiliary/SBTest.txt b/lib/unicore/auxiliary/SBTest.txt
new file mode 100644 (file)
index 0000000..638b22a
--- /dev/null
@@ -0,0 +1,521 @@
+# SentenceBreakTest-7.0.0.txt
+# Date: 2013-11-27, 09:54:53 GMT [MD]
+#
+# Unicode Character Database
+# Copyright (c) 1991-2013 Unicode, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For documentation, see http://www.unicode.org/reports/tr44/
+#
+# Default Sentence Break Test
+#
+# Format:
+# <string> (# <comment>)? 
+#  <string> contains hex Unicode code points, with 
+#      ÷ wherever there is a break opportunity, and 
+#      × wherever there is not.
+#  <comment> the format can change, but currently it shows:
+#      - the sample character name
+#      - (x) the Sentence_Break property value for the sample character
+#      - [x] the rule that determines whether there is a break or not
+#
+# These samples may be extended or changed in the future.
+#
+÷ 0001 × 0001 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0001 × 0308 × 0001 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0001 × 000D ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0001 × 0308 × 000D ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0001 × 000A ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0001 × 0308 × 000A ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0001 × 0085 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 0001 × 0308 × 0085 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 0001 × 0009 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 0001 × 0308 × 0009 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 0001 × 0061 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 0001 × 0308 × 0061 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 0001 × 0041 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 0001 × 0308 × 0041 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 0001 × 01BB ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 0001 × 0308 × 01BB ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 0001 × 0030 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0001 × 0308 × 0030 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0001 × 002E ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 0001 × 0308 × 002E ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 0001 × 0021 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 0001 × 0308 × 0021 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 0001 × 0022 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 0001 × 0308 × 0022 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 0001 × 002C ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 0001 × 0308 × 002C ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 0001 × 00AD ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0001 × 0308 × 00AD ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0001 × 0300 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0001 × 0308 × 0300 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 000D ÷ 0001 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 000D ÷ 0308 × 0001 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 000D ÷ 000D ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 000D ÷ 0308 × 000D ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 000D × 000A ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) × [3.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 000D ÷ 0308 × 000A ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 000D ÷ 0085 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 000D ÷ 0308 × 0085 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 000D ÷ 0009 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 000D ÷ 0308 × 0009 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 000D ÷ 0061 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 000D ÷ 0308 × 0061 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 000D ÷ 0041 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 000D ÷ 0308 × 0041 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 000D ÷ 01BB ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 000D ÷ 0308 × 01BB ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 000D ÷ 0030 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 000D ÷ 0308 × 0030 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 000D ÷ 002E ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 000D ÷ 0308 × 002E ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 000D ÷ 0021 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 000D ÷ 0308 × 0021 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 000D ÷ 0022 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 000D ÷ 0308 × 0022 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 000D ÷ 002C ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMMA (SContinue) ÷ [0.3]
+÷ 000D ÷ 0308 × 002C ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 000D ÷ 00AD ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 000D ÷ 0308 × 00AD ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 000D ÷ 0300 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 000D ÷ 0308 × 0300 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 000A ÷ 0001 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 000A ÷ 0308 × 0001 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 000A ÷ 000D ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 000A ÷ 0308 × 000D ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 000A ÷ 000A ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 000A ÷ 0308 × 000A ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 000A ÷ 0085 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 000A ÷ 0308 × 0085 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 000A ÷ 0009 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 000A ÷ 0308 × 0009 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 000A ÷ 0061 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 000A ÷ 0308 × 0061 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 000A ÷ 0041 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 000A ÷ 0308 × 0041 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 000A ÷ 01BB ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 000A ÷ 0308 × 01BB ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 000A ÷ 0030 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 000A ÷ 0308 × 0030 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 000A ÷ 002E ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 000A ÷ 0308 × 002E ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 000A ÷ 0021 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 000A ÷ 0308 × 0021 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 000A ÷ 0022 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 000A ÷ 0308 × 0022 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 000A ÷ 002C ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMMA (SContinue) ÷ [0.3]
+÷ 000A ÷ 0308 × 002C ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 000A ÷ 00AD ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 000A ÷ 0308 × 00AD ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 000A ÷ 0300 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 000A ÷ 0308 × 0300 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0085 ÷ 0001 ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0085 ÷ 0308 × 0001 ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0085 ÷ 000D ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0085 ÷ 0308 × 000D ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0085 ÷ 000A ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0085 ÷ 0308 × 000A ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0085 ÷ 0085 ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 0085 ÷ 0308 × 0085 ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 0085 ÷ 0009 ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 0085 ÷ 0308 × 0009 ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 0085 ÷ 0061 ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 0085 ÷ 0308 × 0061 ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 0085 ÷ 0041 ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 0085 ÷ 0308 × 0041 ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 0085 ÷ 01BB ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 0085 ÷ 0308 × 01BB ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 0085 ÷ 0030 ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0085 ÷ 0308 × 0030 ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0085 ÷ 002E ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 0085 ÷ 0308 × 002E ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 0085 ÷ 0021 ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 0085 ÷ 0308 × 0021 ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 0085 ÷ 0022 ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 0085 ÷ 0308 × 0022 ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 0085 ÷ 002C ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] COMMA (SContinue) ÷ [0.3]
+÷ 0085 ÷ 0308 × 002C ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 0085 ÷ 00AD ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0085 ÷ 0308 × 00AD ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0085 ÷ 0300 ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0085 ÷ 0308 × 0300 ÷     #  ÷ [0.2] <NEXT LINE (NEL)> (Sep) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0009 × 0001 ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0009 × 0308 × 0001 ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0009 × 000D ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0009 × 0308 × 000D ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0009 × 000A ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0009 × 0308 × 000A ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0009 × 0085 ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 0009 × 0308 × 0085 ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 0009 × 0009 ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 0009 × 0308 × 0009 ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 0009 × 0061 ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 0009 × 0308 × 0061 ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 0009 × 0041 ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 0009 × 0308 × 0041 ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 0009 × 01BB ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 0009 × 0308 × 01BB ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 0009 × 0030 ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0009 × 0308 × 0030 ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0009 × 002E ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 0009 × 0308 × 002E ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 0009 × 0021 ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 0009 × 0308 × 0021 ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 0009 × 0022 ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 0009 × 0308 × 0022 ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 0009 × 002C ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 0009 × 0308 × 002C ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 0009 × 00AD ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0009 × 0308 × 00AD ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0009 × 0300 ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0009 × 0308 × 0300 ÷     #  ÷ [0.2] <CHARACTER TABULATION> (Sp) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0061 × 0001 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0061 × 0308 × 0001 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0061 × 000D ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0061 × 0308 × 000D ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0061 × 000A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0061 × 0308 × 000A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0061 × 0085 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 0061 × 0308 × 0085 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 0061 × 0009 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 0061 × 0308 × 0009 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 0061 × 0061 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 0061 × 0308 × 0061 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 0061 × 0041 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 0061 × 0308 × 0041 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 0061 × 01BB ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 0061 × 0308 × 01BB ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 0061 × 0030 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0061 × 0308 × 0030 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0061 × 002E ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 0061 × 0308 × 002E ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 0061 × 0021 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 0061 × 0308 × 0021 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 0061 × 0022 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 0061 × 0308 × 0022 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 0061 × 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 0061 × 0308 × 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 0061 × 00AD ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0061 × 0308 × 00AD ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0061 × 0300 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0061 × 0308 × 0300 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (Lower) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0041 × 0001 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0041 × 0308 × 0001 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0041 × 000D ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0041 × 0308 × 000D ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0041 × 000A ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0041 × 0308 × 000A ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0041 × 0085 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 0041 × 0308 × 0085 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 0041 × 0009 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 0041 × 0308 × 0009 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 0041 × 0061 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 0041 × 0308 × 0061 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 0041 × 0041 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 0041 × 0308 × 0041 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 0041 × 01BB ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 0041 × 0308 × 01BB ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 0041 × 0030 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0041 × 0308 × 0030 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0041 × 002E ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 0041 × 0308 × 002E ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 0041 × 0021 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 0041 × 0308 × 0021 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 0041 × 0022 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 0041 × 0308 × 0022 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 0041 × 002C ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 0041 × 0308 × 002C ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 0041 × 00AD ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0041 × 0308 × 00AD ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0041 × 0300 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0041 × 0308 × 0300 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (Upper) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 01BB × 0001 ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 01BB × 0308 × 0001 ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 01BB × 000D ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 01BB × 0308 × 000D ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 01BB × 000A ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 01BB × 0308 × 000A ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 01BB × 0085 ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 01BB × 0308 × 0085 ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 01BB × 0009 ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 01BB × 0308 × 0009 ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 01BB × 0061 ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 01BB × 0308 × 0061 ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 01BB × 0041 ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 01BB × 0308 × 0041 ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 01BB × 01BB ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 01BB × 0308 × 01BB ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 01BB × 0030 ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 01BB × 0308 × 0030 ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 01BB × 002E ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 01BB × 0308 × 002E ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 01BB × 0021 ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 01BB × 0308 × 0021 ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 01BB × 0022 ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 01BB × 0308 × 0022 ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 01BB × 002C ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 01BB × 0308 × 002C ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 01BB × 00AD ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 01BB × 0308 × 00AD ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 01BB × 0300 ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 01BB × 0308 × 0300 ÷     #  ÷ [0.2] LATIN LETTER TWO WITH STROKE (OLetter) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0030 × 0001 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0030 × 0308 × 0001 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0030 × 000D ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0030 × 0308 × 000D ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0030 × 000A ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0030 × 0308 × 000A ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0030 × 0085 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 0030 × 0308 × 0085 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 0030 × 0009 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 0030 × 0308 × 0009 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 0030 × 0061 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 0030 × 0308 × 0061 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 0030 × 0041 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 0030 × 0308 × 0041 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 0030 × 01BB ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 0030 × 0308 × 01BB ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 0030 × 0030 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0030 × 0308 × 0030 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0030 × 002E ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 0030 × 0308 × 002E ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 0030 × 0021 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 0030 × 0308 × 0021 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 0030 × 0022 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 0030 × 0308 × 0022 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 0030 × 002C ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 0030 × 0308 × 002C ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 0030 × 00AD ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0030 × 0308 × 00AD ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0030 × 0300 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0030 × 0308 × 0300 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 002E ÷ 0001 ÷     #  ÷ [0.2] FULL STOP (ATerm) ÷ [11.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 002E × 0308 ÷ 0001 ÷     #  ÷ [0.2] FULL STOP (ATerm) × [5.0] COMBINING DIAERESIS (Extend_FE) ÷ [11.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 002E × 000D ÷     #  ÷ [0.2] FULL STOP (ATerm) × [9.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 002E × 0308 × 000D ÷     #  ÷ [0.2] FULL STOP (ATerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [9.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 002E × 000A ÷     #  ÷ [0.2] FULL STOP (ATerm) × [9.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 002E × 0308 × 000A ÷     #  ÷ [0.2] FULL STOP (ATerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [9.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 002E × 0085 ÷     #  ÷ [0.2] FULL STOP (ATerm) × [9.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 002E × 0308 × 0085 ÷     #  ÷ [0.2] FULL STOP (ATerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [9.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 002E × 0009 ÷     #  ÷ [0.2] FULL STOP (ATerm) × [9.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 002E × 0308 × 0009 ÷     #  ÷ [0.2] FULL STOP (ATerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [9.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 002E × 0061 ÷     #  ÷ [0.2] FULL STOP (ATerm) × [8.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 002E × 0308 × 0061 ÷     #  ÷ [0.2] FULL STOP (ATerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [8.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 002E ÷ 0041 ÷     #  ÷ [0.2] FULL STOP (ATerm) ÷ [11.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 002E × 0308 ÷ 0041 ÷     #  ÷ [0.2] FULL STOP (ATerm) × [5.0] COMBINING DIAERESIS (Extend_FE) ÷ [11.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 002E ÷ 01BB ÷     #  ÷ [0.2] FULL STOP (ATerm) ÷ [11.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 002E × 0308 ÷ 01BB ÷     #  ÷ [0.2] FULL STOP (ATerm) × [5.0] COMBINING DIAERESIS (Extend_FE) ÷ [11.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 002E × 0030 ÷     #  ÷ [0.2] FULL STOP (ATerm) × [6.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 002E × 0308 × 0030 ÷     #  ÷ [0.2] FULL STOP (ATerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [6.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 002E × 002E ÷     #  ÷ [0.2] FULL STOP (ATerm) × [8.1] FULL STOP (ATerm) ÷ [0.3]
+÷ 002E × 0308 × 002E ÷     #  ÷ [0.2] FULL STOP (ATerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [8.1] FULL STOP (ATerm) ÷ [0.3]
+÷ 002E × 0021 ÷     #  ÷ [0.2] FULL STOP (ATerm) × [8.1] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 002E × 0308 × 0021 ÷     #  ÷ [0.2] FULL STOP (ATerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [8.1] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 002E × 0022 ÷     #  ÷ [0.2] FULL STOP (ATerm) × [9.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 002E × 0308 × 0022 ÷     #  ÷ [0.2] FULL STOP (ATerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [9.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 002E × 002C ÷     #  ÷ [0.2] FULL STOP (ATerm) × [8.1] COMMA (SContinue) ÷ [0.3]
+÷ 002E × 0308 × 002C ÷     #  ÷ [0.2] FULL STOP (ATerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [8.1] COMMA (SContinue) ÷ [0.3]
+÷ 002E × 00AD ÷     #  ÷ [0.2] FULL STOP (ATerm) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 002E × 0308 × 00AD ÷     #  ÷ [0.2] FULL STOP (ATerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 002E × 0300 ÷     #  ÷ [0.2] FULL STOP (ATerm) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 002E × 0308 × 0300 ÷     #  ÷ [0.2] FULL STOP (ATerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0021 ÷ 0001 ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) ÷ [11.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0021 × 0308 ÷ 0001 ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [5.0] COMBINING DIAERESIS (Extend_FE) ÷ [11.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0021 × 000D ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [9.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0021 × 0308 × 000D ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [9.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0021 × 000A ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [9.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0021 × 0308 × 000A ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [9.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0021 × 0085 ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [9.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 0021 × 0308 × 0085 ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [9.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 0021 × 0009 ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [9.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 0021 × 0308 × 0009 ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [9.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 0021 ÷ 0061 ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) ÷ [11.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 0021 × 0308 ÷ 0061 ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [5.0] COMBINING DIAERESIS (Extend_FE) ÷ [11.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 0021 ÷ 0041 ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) ÷ [11.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 0021 × 0308 ÷ 0041 ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [5.0] COMBINING DIAERESIS (Extend_FE) ÷ [11.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 0021 ÷ 01BB ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) ÷ [11.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 0021 × 0308 ÷ 01BB ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [5.0] COMBINING DIAERESIS (Extend_FE) ÷ [11.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 0021 ÷ 0030 ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) ÷ [11.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0021 × 0308 ÷ 0030 ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [5.0] COMBINING DIAERESIS (Extend_FE) ÷ [11.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0021 × 002E ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [8.1] FULL STOP (ATerm) ÷ [0.3]
+÷ 0021 × 0308 × 002E ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [8.1] FULL STOP (ATerm) ÷ [0.3]
+÷ 0021 × 0021 ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [8.1] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 0021 × 0308 × 0021 ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [8.1] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 0021 × 0022 ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [9.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 0021 × 0308 × 0022 ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [9.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 0021 × 002C ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [8.1] COMMA (SContinue) ÷ [0.3]
+÷ 0021 × 0308 × 002C ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [8.1] COMMA (SContinue) ÷ [0.3]
+÷ 0021 × 00AD ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0021 × 0308 × 00AD ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0021 × 0300 ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0021 × 0308 × 0300 ÷     #  ÷ [0.2] EXCLAMATION MARK (STerm) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0022 × 0001 ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0022 × 0308 × 0001 ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0022 × 000D ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0022 × 0308 × 000D ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0022 × 000A ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0022 × 0308 × 000A ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0022 × 0085 ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 0022 × 0308 × 0085 ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 0022 × 0009 ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 0022 × 0308 × 0009 ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 0022 × 0061 ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 0022 × 0308 × 0061 ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 0022 × 0041 ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 0022 × 0308 × 0041 ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 0022 × 01BB ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 0022 × 0308 × 01BB ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 0022 × 0030 ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0022 × 0308 × 0030 ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0022 × 002E ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 0022 × 0308 × 002E ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 0022 × 0021 ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 0022 × 0308 × 0021 ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 0022 × 0022 ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 0022 × 0308 × 0022 ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 0022 × 002C ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 0022 × 0308 × 002C ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 0022 × 00AD ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0022 × 0308 × 00AD ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0022 × 0300 ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0022 × 0308 × 0300 ÷     #  ÷ [0.2] QUOTATION MARK (Close) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 002C × 0001 ÷     #  ÷ [0.2] COMMA (SContinue) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 002C × 0308 × 0001 ÷     #  ÷ [0.2] COMMA (SContinue) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 002C × 000D ÷     #  ÷ [0.2] COMMA (SContinue) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 002C × 0308 × 000D ÷     #  ÷ [0.2] COMMA (SContinue) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 002C × 000A ÷     #  ÷ [0.2] COMMA (SContinue) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 002C × 0308 × 000A ÷     #  ÷ [0.2] COMMA (SContinue) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 002C × 0085 ÷     #  ÷ [0.2] COMMA (SContinue) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 002C × 0308 × 0085 ÷     #  ÷ [0.2] COMMA (SContinue) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 002C × 0009 ÷     #  ÷ [0.2] COMMA (SContinue) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 002C × 0308 × 0009 ÷     #  ÷ [0.2] COMMA (SContinue) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 002C × 0061 ÷     #  ÷ [0.2] COMMA (SContinue) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 002C × 0308 × 0061 ÷     #  ÷ [0.2] COMMA (SContinue) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 002C × 0041 ÷     #  ÷ [0.2] COMMA (SContinue) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 002C × 0308 × 0041 ÷     #  ÷ [0.2] COMMA (SContinue) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 002C × 01BB ÷     #  ÷ [0.2] COMMA (SContinue) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 002C × 0308 × 01BB ÷     #  ÷ [0.2] COMMA (SContinue) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 002C × 0030 ÷     #  ÷ [0.2] COMMA (SContinue) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 002C × 0308 × 0030 ÷     #  ÷ [0.2] COMMA (SContinue) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 002C × 002E ÷     #  ÷ [0.2] COMMA (SContinue) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 002C × 0308 × 002E ÷     #  ÷ [0.2] COMMA (SContinue) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 002C × 0021 ÷     #  ÷ [0.2] COMMA (SContinue) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 002C × 0308 × 0021 ÷     #  ÷ [0.2] COMMA (SContinue) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 002C × 0022 ÷     #  ÷ [0.2] COMMA (SContinue) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 002C × 0308 × 0022 ÷     #  ÷ [0.2] COMMA (SContinue) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 002C × 002C ÷     #  ÷ [0.2] COMMA (SContinue) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 002C × 0308 × 002C ÷     #  ÷ [0.2] COMMA (SContinue) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 002C × 00AD ÷     #  ÷ [0.2] COMMA (SContinue) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 002C × 0308 × 00AD ÷     #  ÷ [0.2] COMMA (SContinue) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 002C × 0300 ÷     #  ÷ [0.2] COMMA (SContinue) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 002C × 0308 × 0300 ÷     #  ÷ [0.2] COMMA (SContinue) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 00AD × 0001 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 00AD × 0308 × 0001 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 00AD × 000D ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 00AD × 0308 × 000D ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 00AD × 000A ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 00AD × 0308 × 000A ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 00AD × 0085 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 00AD × 0308 × 0085 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 00AD × 0009 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 00AD × 0308 × 0009 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 00AD × 0061 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 00AD × 0308 × 0061 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 00AD × 0041 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 00AD × 0308 × 0041 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 00AD × 01BB ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 00AD × 0308 × 01BB ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 00AD × 0030 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 00AD × 0308 × 0030 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 00AD × 002E ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 00AD × 0308 × 002E ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 00AD × 0021 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 00AD × 0308 × 0021 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 00AD × 0022 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 00AD × 0308 × 0022 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 00AD × 002C ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 00AD × 0308 × 002C ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 00AD × 00AD ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 00AD × 0308 × 00AD ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 00AD × 0300 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 00AD × 0308 × 0300 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0300 × 0001 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0300 × 0308 × 0001 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0300 × 000D ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0300 × 0308 × 000D ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0300 × 000A ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0300 × 0308 × 000A ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0300 × 0085 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 0300 × 0308 × 0085 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <NEXT LINE (NEL)> (Sep) ÷ [0.3]
+÷ 0300 × 0009 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 0300 × 0308 × 0009 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] <CHARACTER TABULATION> (Sp) ÷ [0.3]
+÷ 0300 × 0061 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 0300 × 0308 × 0061 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN SMALL LETTER A (Lower) ÷ [0.3]
+÷ 0300 × 0041 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 0300 × 0308 × 0041 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN CAPITAL LETTER A (Upper) ÷ [0.3]
+÷ 0300 × 01BB ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 0300 × 0308 × 01BB ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN LETTER TWO WITH STROKE (OLetter) ÷ [0.3]
+÷ 0300 × 0030 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0300 × 0308 × 0030 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0300 × 002E ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 0300 × 0308 × 002E ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 0300 × 0021 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 0300 × 0308 × 0021 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] EXCLAMATION MARK (STerm) ÷ [0.3]
+÷ 0300 × 0022 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 0300 × 0308 × 0022 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] QUOTATION MARK (Close) ÷ [0.3]
+÷ 0300 × 002C ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 0300 × 0308 × 002C ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [12.0] COMMA (SContinue) ÷ [0.3]
+÷ 0300 × 00AD ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0300 × 0308 × 00AD ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0300 × 0300 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0300 × 0308 × 0300 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0028 × 0022 × 0047 × 006F × 002E × 0022 × 0029 × 0020 ÷ 0028 × 0048 × 0065 × 0020 × 0064 × 0069 × 0064 × 002E × 0029 ÷     #  ÷ [0.2] LEFT PARENTHESIS (Close) × [12.0] QUOTATION MARK (Close) × [12.0] LATIN CAPITAL LETTER G (Upper) × [12.0] LATIN SMALL LETTER O (Lower) × [12.0] FULL STOP (ATerm) × [9.0] QUOTATION MARK (Close) × [9.0] RIGHT PARENTHESIS (Close) × [9.0] SPACE (Sp) ÷ [11.0] LEFT PARENTHESIS (Close) × [12.0] LATIN CAPITAL LETTER H (Upper) × [12.0] LATIN SMALL LETTER E (Lower) × [12.0] SPACE (Sp) × [12.0] LATIN SMALL LETTER D (Lower) × [12.0] LATIN SMALL LETTER I (Lower) × [12.0] LATIN SMALL LETTER D (Lower) × [12.0] FULL STOP (ATerm) × [9.0] RIGHT PARENTHESIS (Close) ÷ [0.3]
+÷ 0028 × 201C × 0047 × 006F × 003F × 201D × 0029 × 0020 ÷ 0028 × 0048 × 0065 × 0020 × 0064 × 0069 × 0064 × 002E × 0029 ÷     #  ÷ [0.2] LEFT PARENTHESIS (Close) × [12.0] LEFT DOUBLE QUOTATION MARK (Close) × [12.0] LATIN CAPITAL LETTER G (Upper) × [12.0] LATIN SMALL LETTER O (Lower) × [12.0] QUESTION MARK (STerm) × [9.0] RIGHT DOUBLE QUOTATION MARK (Close) × [9.0] RIGHT PARENTHESIS (Close) × [9.0] SPACE (Sp) ÷ [11.0] LEFT PARENTHESIS (Close) × [12.0] LATIN CAPITAL LETTER H (Upper) × [12.0] LATIN SMALL LETTER E (Lower) × [12.0] SPACE (Sp) × [12.0] LATIN SMALL LETTER D (Lower) × [12.0] LATIN SMALL LETTER I (Lower) × [12.0] LATIN SMALL LETTER D (Lower) × [12.0] FULL STOP (ATerm) × [9.0] RIGHT PARENTHESIS (Close) ÷ [0.3]
+÷ 0055 × 002E × 0053 × 002E × 0041 × 0300 × 002E × 0020 × 0069 × 0073 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER U (Upper) × [12.0] FULL STOP (ATerm) × [7.0] LATIN CAPITAL LETTER S (Upper) × [12.0] FULL STOP (ATerm) × [7.0] LATIN CAPITAL LETTER A (Upper) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) × [12.0] FULL STOP (ATerm) × [8.0] SPACE (Sp) × [8.0] LATIN SMALL LETTER I (Lower) × [12.0] LATIN SMALL LETTER S (Lower) ÷ [0.3]
+÷ 0055 × 002E × 0053 × 002E × 0041 × 0300 × 003F × 0020 ÷ 0048 × 0065 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER U (Upper) × [12.0] FULL STOP (ATerm) × [7.0] LATIN CAPITAL LETTER S (Upper) × [12.0] FULL STOP (ATerm) × [7.0] LATIN CAPITAL LETTER A (Upper) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) × [12.0] QUESTION MARK (STerm) × [9.0] SPACE (Sp) ÷ [11.0] LATIN CAPITAL LETTER H (Upper) × [12.0] LATIN SMALL LETTER E (Lower) ÷ [0.3]
+÷ 0055 × 002E × 0053 × 002E × 0041 × 0300 × 002E ÷     #  ÷ [0.2] LATIN CAPITAL LETTER U (Upper) × [12.0] FULL STOP (ATerm) × [7.0] LATIN CAPITAL LETTER S (Upper) × [12.0] FULL STOP (ATerm) × [7.0] LATIN CAPITAL LETTER A (Upper) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) × [12.0] FULL STOP (ATerm) ÷ [0.3]
+÷ 0033 × 002E × 0034 ÷     #  ÷ [0.2] DIGIT THREE (Numeric) × [12.0] FULL STOP (ATerm) × [6.0] DIGIT FOUR (Numeric) ÷ [0.3]
+÷ 0063 × 002E × 0064 ÷     #  ÷ [0.2] LATIN SMALL LETTER C (Lower) × [12.0] FULL STOP (ATerm) × [8.0] LATIN SMALL LETTER D (Lower) ÷ [0.3]
+÷ 0065 × 0074 × 0063 × 002E × 0029 × 2019 × 00A0 × 0074 × 0068 × 0065 ÷     #  ÷ [0.2] LATIN SMALL LETTER E (Lower) × [12.0] LATIN SMALL LETTER T (Lower) × [12.0] LATIN SMALL LETTER C (Lower) × [12.0] FULL STOP (ATerm) × [8.0] RIGHT PARENTHESIS (Close) × [8.0] RIGHT SINGLE QUOTATION MARK (Close) × [8.0] NO-BREAK SPACE (Sp) × [8.0] LATIN SMALL LETTER T (Lower) × [12.0] LATIN SMALL LETTER H (Lower) × [12.0] LATIN SMALL LETTER E (Lower) ÷ [0.3]
+÷ 0065 × 0074 × 0063 × 002E × 0029 × 2019 × 00A0 ÷ 0054 × 0068 × 0065 ÷     #  ÷ [0.2] LATIN SMALL LETTER E (Lower) × [12.0] LATIN SMALL LETTER T (Lower) × [12.0] LATIN SMALL LETTER C (Lower) × [12.0] FULL STOP (ATerm) × [9.0] RIGHT PARENTHESIS (Close) × [9.0] RIGHT SINGLE QUOTATION MARK (Close) × [9.0] NO-BREAK SPACE (Sp) ÷ [11.0] LATIN CAPITAL LETTER T (Upper) × [12.0] LATIN SMALL LETTER H (Lower) × [12.0] LATIN SMALL LETTER E (Lower) ÷ [0.3]
+÷ 0065 × 0074 × 0063 × 002E × 0029 × 2019 × 00A0 × 2018 × 0028 × 0074 × 0068 × 0065 ÷     #  ÷ [0.2] LATIN SMALL LETTER E (Lower) × [12.0] LATIN SMALL LETTER T (Lower) × [12.0] LATIN SMALL LETTER C (Lower) × [12.0] FULL STOP (ATerm) × [8.0] RIGHT PARENTHESIS (Close) × [8.0] RIGHT SINGLE QUOTATION MARK (Close) × [8.0] NO-BREAK SPACE (Sp) × [8.0] LEFT SINGLE QUOTATION MARK (Close) × [12.0] LEFT PARENTHESIS (Close) × [12.0] LATIN SMALL LETTER T (Lower) × [12.0] LATIN SMALL LETTER H (Lower) × [12.0] LATIN SMALL LETTER E (Lower) ÷ [0.3]
+÷ 0065 × 0074 × 0063 × 002E × 0029 × 2019 × 00A0 ÷ 2018 × 0028 × 0054 × 0068 × 0065 ÷     #  ÷ [0.2] LATIN SMALL LETTER E (Lower) × [12.0] LATIN SMALL LETTER T (Lower) × [12.0] LATIN SMALL LETTER C (Lower) × [12.0] FULL STOP (ATerm) × [9.0] RIGHT PARENTHESIS (Close) × [9.0] RIGHT SINGLE QUOTATION MARK (Close) × [9.0] NO-BREAK SPACE (Sp) ÷ [11.0] LEFT SINGLE QUOTATION MARK (Close) × [12.0] LEFT PARENTHESIS (Close) × [12.0] LATIN CAPITAL LETTER T (Upper) × [12.0] LATIN SMALL LETTER H (Lower) × [12.0] LATIN SMALL LETTER E (Lower) ÷ [0.3]
+÷ 0065 × 0074 × 0063 × 002E × 0029 × 2019 × 00A0 × 0308 × 0074 × 0068 × 0065 ÷     #  ÷ [0.2] LATIN SMALL LETTER E (Lower) × [12.0] LATIN SMALL LETTER T (Lower) × [12.0] LATIN SMALL LETTER C (Lower) × [12.0] FULL STOP (ATerm) × [8.0] RIGHT PARENTHESIS (Close) × [8.0] RIGHT SINGLE QUOTATION MARK (Close) × [8.0] NO-BREAK SPACE (Sp) × [5.0] COMBINING DIAERESIS (Extend_FE) × [8.0] LATIN SMALL LETTER T (Lower) × [12.0] LATIN SMALL LETTER H (Lower) × [12.0] LATIN SMALL LETTER E (Lower) ÷ [0.3]
+÷ 0065 × 0074 × 0063 × 002E × 0029 × 2019 × 00A0 × 0308 ÷ 0054 × 0068 × 0065 ÷     #  ÷ [0.2] LATIN SMALL LETTER E (Lower) × [12.0] LATIN SMALL LETTER T (Lower) × [12.0] LATIN SMALL LETTER C (Lower) × [12.0] FULL STOP (ATerm) × [9.0] RIGHT PARENTHESIS (Close) × [9.0] RIGHT SINGLE QUOTATION MARK (Close) × [9.0] NO-BREAK SPACE (Sp) × [5.0] COMBINING DIAERESIS (Extend_FE) ÷ [11.0] LATIN CAPITAL LETTER T (Upper) × [12.0] LATIN SMALL LETTER H (Lower) × [12.0] LATIN SMALL LETTER E (Lower) ÷ [0.3]
+÷ 0065 × 0074 × 0063 × 002E × 0029 × 2019 × 0308 ÷ 0054 × 0068 × 0065 ÷     #  ÷ [0.2] LATIN SMALL LETTER E (Lower) × [12.0] LATIN SMALL LETTER T (Lower) × [12.0] LATIN SMALL LETTER C (Lower) × [12.0] FULL STOP (ATerm) × [9.0] RIGHT PARENTHESIS (Close) × [9.0] RIGHT SINGLE QUOTATION MARK (Close) × [5.0] COMBINING DIAERESIS (Extend_FE) ÷ [11.0] LATIN CAPITAL LETTER T (Upper) × [12.0] LATIN SMALL LETTER H (Lower) × [12.0] LATIN SMALL LETTER E (Lower) ÷ [0.3]
+÷ 0065 × 0074 × 0063 × 002E × 0029 × 000A ÷ 0308 × 0054 × 0068 × 0065 ÷     #  ÷ [0.2] LATIN SMALL LETTER E (Lower) × [12.0] LATIN SMALL LETTER T (Lower) × [12.0] LATIN SMALL LETTER C (Lower) × [12.0] FULL STOP (ATerm) × [9.0] RIGHT PARENTHESIS (Close) × [9.0] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend_FE) × [12.0] LATIN CAPITAL LETTER T (Upper) × [12.0] LATIN SMALL LETTER H (Lower) × [12.0] LATIN SMALL LETTER E (Lower) ÷ [0.3]
+÷ 0074 × 0068 × 0065 × 0020 × 0072 × 0065 × 0073 × 0070 × 002E × 0020 × 006C × 0065 × 0061 × 0064 × 0065 × 0072 × 0073 × 0020 × 0061 × 0072 × 0065 ÷     #  ÷ [0.2] LATIN SMALL LETTER T (Lower) × [12.0] LATIN SMALL LETTER H (Lower) × [12.0] LATIN SMALL LETTER E (Lower) × [12.0] SPACE (Sp) × [12.0] LATIN SMALL LETTER R (Lower) × [12.0] LATIN SMALL LETTER E (Lower) × [12.0] LATIN SMALL LETTER S (Lower) × [12.0] LATIN SMALL LETTER P (Lower) × [12.0] FULL STOP (ATerm) × [8.0] SPACE (Sp) × [8.0] LATIN SMALL LETTER L (Lower) × [12.0] LATIN SMALL LETTER E (Lower) × [12.0] LATIN SMALL LETTER A (Lower) × [12.0] LATIN SMALL LETTER D (Lower) × [12.0] LATIN SMALL LETTER E (Lower) × [12.0] LATIN SMALL LETTER R (Lower) × [12.0] LATIN SMALL LETTER S (Lower) × [12.0] SPACE (Sp) × [12.0] LATIN SMALL LETTER A (Lower) × [12.0] LATIN SMALL LETTER R (Lower) × [12.0] LATIN SMALL LETTER E (Lower) ÷ [0.3]
+÷ 5B57 × 002E ÷ 5B57 ÷     #  ÷ [0.2] CJK UNIFIED IDEOGRAPH-5B57 (OLetter) × [12.0] FULL STOP (ATerm) ÷ [11.0] CJK UNIFIED IDEOGRAPH-5B57 (OLetter) ÷ [0.3]
+÷ 0065 × 0074 × 0063 × 002E ÷ 5B83 ÷     #  ÷ [0.2] LATIN SMALL LETTER E (Lower) × [12.0] LATIN SMALL LETTER T (Lower) × [12.0] LATIN SMALL LETTER C (Lower) × [12.0] FULL STOP (ATerm) ÷ [11.0] CJK UNIFIED IDEOGRAPH-5B83 (OLetter) ÷ [0.3]
+÷ 0065 × 0074 × 0063 × 002E × 3002 ÷     #  ÷ [0.2] LATIN SMALL LETTER E (Lower) × [12.0] LATIN SMALL LETTER T (Lower) × [12.0] LATIN SMALL LETTER C (Lower) × [12.0] FULL STOP (ATerm) × [8.1] IDEOGRAPHIC FULL STOP (STerm) ÷ [0.3]
+÷ 5B57 × 3002 ÷ 5B83 ÷     #  ÷ [0.2] CJK UNIFIED IDEOGRAPH-5B57 (OLetter) × [12.0] IDEOGRAPHIC FULL STOP (STerm) ÷ [11.0] CJK UNIFIED IDEOGRAPH-5B83 (OLetter) ÷ [0.3]
+÷ 2060 × 0028 × 2060 × 0022 × 2060 × 0047 × 2060 × 006F × 2060 × 002E × 2060 × 0022 × 2060 × 0029 × 2060 × 0020 × 2060 ÷ 0028 × 2060 × 0048 × 2060 × 0065 × 2060 × 0020 × 2060 × 0064 × 2060 × 0069 × 2060 × 0064 × 2060 × 002E × 2060 × 0029 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] LEFT PARENTHESIS (Close) × [5.0] WORD JOINER (Format_FE) × [12.0] QUOTATION MARK (Close) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN CAPITAL LETTER G (Upper) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER O (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [9.0] QUOTATION MARK (Close) × [5.0] WORD JOINER (Format_FE) × [9.0] RIGHT PARENTHESIS (Close) × [5.0] WORD JOINER (Format_FE) × [9.0] SPACE (Sp) × [5.0] WORD JOINER (Format_FE) ÷ [11.0] LEFT PARENTHESIS (Close) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN CAPITAL LETTER H (Upper) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] SPACE (Sp) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER D (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER I (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER D (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [9.0] RIGHT PARENTHESIS (Close) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 × 0028 × 2060 × 201C × 2060 × 0047 × 2060 × 006F × 2060 × 003F × 2060 × 201D × 2060 × 0029 × 2060 × 0020 × 2060 ÷ 0028 × 2060 × 0048 × 2060 × 0065 × 2060 × 0020 × 2060 × 0064 × 2060 × 0069 × 2060 × 0064 × 2060 × 002E × 2060 × 0029 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] LEFT PARENTHESIS (Close) × [5.0] WORD JOINER (Format_FE) × [12.0] LEFT DOUBLE QUOTATION MARK (Close) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN CAPITAL LETTER G (Upper) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER O (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] QUESTION MARK (STerm) × [5.0] WORD JOINER (Format_FE) × [9.0] RIGHT DOUBLE QUOTATION MARK (Close) × [5.0] WORD JOINER (Format_FE) × [9.0] RIGHT PARENTHESIS (Close) × [5.0] WORD JOINER (Format_FE) × [9.0] SPACE (Sp) × [5.0] WORD JOINER (Format_FE) ÷ [11.0] LEFT PARENTHESIS (Close) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN CAPITAL LETTER H (Upper) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] SPACE (Sp) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER D (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER I (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER D (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [9.0] RIGHT PARENTHESIS (Close) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 × 0055 × 2060 × 002E × 2060 × 0053 × 2060 × 002E × 2060 × 0041 × 2060 × 0300 × 002E × 2060 × 0020 × 2060 × 0069 × 2060 × 0073 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] LATIN CAPITAL LETTER U (Upper) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [7.0] LATIN CAPITAL LETTER S (Upper) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [7.0] LATIN CAPITAL LETTER A (Upper) × [5.0] WORD JOINER (Format_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [8.0] SPACE (Sp) × [5.0] WORD JOINER (Format_FE) × [8.0] LATIN SMALL LETTER I (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER S (Lower) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 × 0055 × 2060 × 002E × 2060 × 0053 × 2060 × 002E × 2060 × 0041 × 2060 × 0300 × 003F × 2060 × 0020 × 2060 ÷ 0048 × 2060 × 0065 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] LATIN CAPITAL LETTER U (Upper) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [7.0] LATIN CAPITAL LETTER S (Upper) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [7.0] LATIN CAPITAL LETTER A (Upper) × [5.0] WORD JOINER (Format_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) × [12.0] QUESTION MARK (STerm) × [5.0] WORD JOINER (Format_FE) × [9.0] SPACE (Sp) × [5.0] WORD JOINER (Format_FE) ÷ [11.0] LATIN CAPITAL LETTER H (Upper) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 × 0055 × 2060 × 002E × 2060 × 0053 × 2060 × 002E × 2060 × 0041 × 2060 × 0300 × 002E × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] LATIN CAPITAL LETTER U (Upper) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [7.0] LATIN CAPITAL LETTER S (Upper) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [7.0] LATIN CAPITAL LETTER A (Upper) × [5.0] WORD JOINER (Format_FE) × [5.0] COMBINING GRAVE ACCENT (Extend_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 × 0033 × 2060 × 002E × 2060 × 0034 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] DIGIT THREE (Numeric) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [6.0] DIGIT FOUR (Numeric) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 × 0063 × 2060 × 002E × 2060 × 0064 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER C (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [8.0] LATIN SMALL LETTER D (Lower) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 × 0065 × 2060 × 0074 × 2060 × 0063 × 2060 × 002E × 2060 × 0029 × 2060 × 2019 × 2060 × 00A0 × 2060 × 0074 × 2060 × 0068 × 2060 × 0065 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER T (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER C (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [8.0] RIGHT PARENTHESIS (Close) × [5.0] WORD JOINER (Format_FE) × [8.0] RIGHT SINGLE QUOTATION MARK (Close) × [5.0] WORD JOINER (Format_FE) × [8.0] NO-BREAK SPACE (Sp) × [5.0] WORD JOINER (Format_FE) × [8.0] LATIN SMALL LETTER T (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER H (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 × 0065 × 2060 × 0074 × 2060 × 0063 × 2060 × 002E × 2060 × 0029 × 2060 × 2019 × 2060 × 00A0 × 2060 ÷ 0054 × 2060 × 0068 × 2060 × 0065 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER T (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER C (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [9.0] RIGHT PARENTHESIS (Close) × [5.0] WORD JOINER (Format_FE) × [9.0] RIGHT SINGLE QUOTATION MARK (Close) × [5.0] WORD JOINER (Format_FE) × [9.0] NO-BREAK SPACE (Sp) × [5.0] WORD JOINER (Format_FE) ÷ [11.0] LATIN CAPITAL LETTER T (Upper) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER H (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 × 0065 × 2060 × 0074 × 2060 × 0063 × 2060 × 002E × 2060 × 0029 × 2060 × 2019 × 2060 × 00A0 × 2060 × 2018 × 2060 × 0028 × 2060 × 0074 × 2060 × 0068 × 2060 × 0065 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER T (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER C (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [8.0] RIGHT PARENTHESIS (Close) × [5.0] WORD JOINER (Format_FE) × [8.0] RIGHT SINGLE QUOTATION MARK (Close) × [5.0] WORD JOINER (Format_FE) × [8.0] NO-BREAK SPACE (Sp) × [5.0] WORD JOINER (Format_FE) × [8.0] LEFT SINGLE QUOTATION MARK (Close) × [5.0] WORD JOINER (Format_FE) × [12.0] LEFT PARENTHESIS (Close) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER T (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER H (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 × 0065 × 2060 × 0074 × 2060 × 0063 × 2060 × 002E × 2060 × 0029 × 2060 × 2019 × 2060 × 00A0 × 2060 ÷ 2018 × 2060 × 0028 × 2060 × 0054 × 2060 × 0068 × 2060 × 0065 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER T (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER C (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [9.0] RIGHT PARENTHESIS (Close) × [5.0] WORD JOINER (Format_FE) × [9.0] RIGHT SINGLE QUOTATION MARK (Close) × [5.0] WORD JOINER (Format_FE) × [9.0] NO-BREAK SPACE (Sp) × [5.0] WORD JOINER (Format_FE) ÷ [11.0] LEFT SINGLE QUOTATION MARK (Close) × [5.0] WORD JOINER (Format_FE) × [12.0] LEFT PARENTHESIS (Close) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN CAPITAL LETTER T (Upper) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER H (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 × 0065 × 2060 × 0074 × 2060 × 0063 × 2060 × 002E × 2060 × 0029 × 2060 × 2019 × 2060 × 00A0 × 2060 × 0308 × 0074 × 2060 × 0068 × 2060 × 0065 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER T (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER C (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [8.0] RIGHT PARENTHESIS (Close) × [5.0] WORD JOINER (Format_FE) × [8.0] RIGHT SINGLE QUOTATION MARK (Close) × [5.0] WORD JOINER (Format_FE) × [8.0] NO-BREAK SPACE (Sp) × [5.0] WORD JOINER (Format_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [8.0] LATIN SMALL LETTER T (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER H (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 × 0065 × 2060 × 0074 × 2060 × 0063 × 2060 × 002E × 2060 × 0029 × 2060 × 2019 × 2060 × 00A0 × 2060 × 0308 ÷ 0054 × 2060 × 0068 × 2060 × 0065 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER T (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER C (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [9.0] RIGHT PARENTHESIS (Close) × [5.0] WORD JOINER (Format_FE) × [9.0] RIGHT SINGLE QUOTATION MARK (Close) × [5.0] WORD JOINER (Format_FE) × [9.0] NO-BREAK SPACE (Sp) × [5.0] WORD JOINER (Format_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) ÷ [11.0] LATIN CAPITAL LETTER T (Upper) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER H (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 × 0065 × 2060 × 0074 × 2060 × 0063 × 2060 × 002E × 2060 × 0029 × 2060 × 2019 × 2060 × 0308 ÷ 0054 × 2060 × 0068 × 2060 × 0065 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER T (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER C (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [9.0] RIGHT PARENTHESIS (Close) × [5.0] WORD JOINER (Format_FE) × [9.0] RIGHT SINGLE QUOTATION MARK (Close) × [5.0] WORD JOINER (Format_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) ÷ [11.0] LATIN CAPITAL LETTER T (Upper) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER H (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 × 0065 × 2060 × 0074 × 2060 × 0063 × 2060 × 002E × 2060 × 0029 × 2060 × 000A ÷ 2060 × 0308 × 2060 × 0054 × 2060 × 0068 × 2060 × 0065 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER T (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER C (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [9.0] RIGHT PARENTHESIS (Close) × [5.0] WORD JOINER (Format_FE) × [9.0] <LINE FEED (LF)> (LF) ÷ [4.0] WORD JOINER (Format_FE) × [5.0] COMBINING DIAERESIS (Extend_FE) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN CAPITAL LETTER T (Upper) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER H (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 × 0074 × 2060 × 0068 × 2060 × 0065 × 2060 × 0020 × 2060 × 0072 × 2060 × 0065 × 2060 × 0073 × 2060 × 0070 × 2060 × 002E × 2060 × 0020 × 2060 × 006C × 2060 × 0065 × 2060 × 0061 × 2060 × 0064 × 2060 × 0065 × 2060 × 0072 × 2060 × 0073 × 2060 × 0020 × 2060 × 0061 × 2060 × 0072 × 2060 × 0065 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER T (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER H (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] SPACE (Sp) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER R (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER S (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER P (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [8.0] SPACE (Sp) × [5.0] WORD JOINER (Format_FE) × [8.0] LATIN SMALL LETTER L (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER A (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER D (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER R (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER S (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] SPACE (Sp) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER A (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER R (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 × 5B57 × 2060 × 002E × 2060 ÷ 5B57 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] CJK UNIFIED IDEOGRAPH-5B57 (OLetter) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) ÷ [11.0] CJK UNIFIED IDEOGRAPH-5B57 (OLetter) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 × 0065 × 2060 × 0074 × 2060 × 0063 × 2060 × 002E × 2060 ÷ 5B83 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER T (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER C (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) ÷ [11.0] CJK UNIFIED IDEOGRAPH-5B83 (OLetter) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 × 0065 × 2060 × 0074 × 2060 × 0063 × 2060 × 002E × 2060 × 3002 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER E (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER T (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] LATIN SMALL LETTER C (Lower) × [5.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (ATerm) × [5.0] WORD JOINER (Format_FE) × [8.1] IDEOGRAPHIC FULL STOP (STerm) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 × 5B57 × 2060 × 3002 × 2060 ÷ 5B83 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) × [12.0] CJK UNIFIED IDEOGRAPH-5B57 (OLetter) × [5.0] WORD JOINER (Format_FE) × [12.0] IDEOGRAPHIC FULL STOP (STerm) × [5.0] WORD JOINER (Format_FE) ÷ [11.0] CJK UNIFIED IDEOGRAPH-5B83 (OLetter) × [5.0] WORD JOINER (Format_FE) × [5.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 1F1E6 × 1F1E7 × 1F1E8 ÷  #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Other) × [12.0] REGIONAL INDICATOR SYMBOL LETTER B (Other) × [12.0] REGIONAL INDICATOR SYMBOL LETTER C (Other) ÷ [0.3]
+÷ 1F1E6 × 200D × 1F1E7 × 1F1E8 ÷  #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Other) × [5.0] ZERO WIDTH JOINER (Extend_FE) × [12.0] REGIONAL INDICATOR SYMBOL LETTER B (Other) × [12.0] REGIONAL INDICATOR SYMBOL LETTER C (Other) ÷ [0.3]
+÷ 1F1E6 × 1F1E7 × 200D × 1F1E8 ÷  #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Other) × [12.0] REGIONAL INDICATOR SYMBOL LETTER B (Other) × [5.0] ZERO WIDTH JOINER (Extend_FE) × [12.0] REGIONAL INDICATOR SYMBOL LETTER C (Other) ÷ [0.3]
+÷ 0020 × 200D × 0646 ÷     #  ÷ [0.2] SPACE (Sp) × [5.0] ZERO WIDTH JOINER (Extend_FE) × [12.0] ARABIC LETTER NOON (OLetter) ÷ [0.3]
+÷ 0646 × 200D × 0020 ÷     #  ÷ [0.2] ARABIC LETTER NOON (OLetter) × [5.0] ZERO WIDTH JOINER (Extend_FE) × [12.0] SPACE (Sp) ÷ [0.3]
+#
+# Lines: 495
+#
+# EOF
diff --git a/lib/unicore/auxiliary/WBTest.txt b/lib/unicore/auxiliary/WBTest.txt
new file mode 100644 (file)
index 0000000..1f812f6
--- /dev/null
@@ -0,0 +1,1398 @@
+# WordBreakTest-7.0.0.txt
+# Date: 2013-11-27, 09:54:53 GMT [MD]
+#
+# Unicode Character Database
+# Copyright (c) 1991-2013 Unicode, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For documentation, see http://www.unicode.org/reports/tr44/
+#
+# Default Word Break Test
+#
+# Format:
+# <string> (# <comment>)? 
+#  <string> contains hex Unicode code points, with 
+#      ÷ wherever there is a break opportunity, and 
+#      × wherever there is not.
+#  <comment> the format can change, but currently it shows:
+#      - the sample character name
+#      - (x) the Word_Break property value for the sample character
+#      - [x] the rule that determines whether there is a break or not
+#
+# These samples may be extended or changed in the future.
+#
+÷ 0001 ÷ 0001 ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0001 × 0308 ÷ 0001 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0001 ÷ 000D ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0001 × 0308 ÷ 000D ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0001 ÷ 000A ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0001 × 0308 ÷ 000A ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0001 ÷ 000B ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0001 × 0308 ÷ 000B ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0001 ÷ 3031 ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0001 × 0308 ÷ 3031 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0001 ÷ 0041 ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0001 × 0308 ÷ 0041 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0001 ÷ 003A ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0001 × 0308 ÷ 003A ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0001 ÷ 002C ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0001 × 0308 ÷ 002C ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0001 ÷ 002E ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0001 × 0308 ÷ 002E ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0001 ÷ 0030 ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0001 × 0308 ÷ 0030 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0001 ÷ 005F ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0001 × 0308 ÷ 005F ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0001 ÷ 1F1E6 ÷    #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0001 × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0001 ÷ 05D0 ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0001 × 0308 ÷ 05D0 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0001 ÷ 0022 ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0001 × 0308 ÷ 0022 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0001 ÷ 0027 ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0001 × 0308 ÷ 0027 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0001 × 00AD ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0001 × 0308 × 00AD ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0001 × 0300 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0001 × 0308 × 0300 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0001 ÷ 0061 × 2060 ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0001 × 0308 ÷ 0061 × 2060 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0001 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0001 × 0308 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0001 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0001 × 0308 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0001 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0001 × 0308 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0001 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0001 × 0308 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0001 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0001 × 0308 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0001 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0001 × 0308 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0001 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0001 × 0308 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0001 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] <START OF HEADING> (Other) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0001 × 0308 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] <START OF HEADING> (Other) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 000D ÷ 0001 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] <START OF HEADING> (Other) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0001 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 000D ÷ 000D ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 000D ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 000D × 000A ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) × [3.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 000A ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 000D ÷ 000B ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 000B ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 000D ÷ 3031 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 3031 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 000D ÷ 0041 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0041 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 000D ÷ 003A ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COLON (MidLetter) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 003A ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 000D ÷ 002C ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMMA (MidNum) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 002C ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 000D ÷ 002E ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 002E ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 000D ÷ 0030 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0030 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 000D ÷ 005F ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 005F ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 000D ÷ 1F1E6 ÷    #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 000D ÷ 05D0 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 05D0 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 000D ÷ 0022 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0022 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 000D ÷ 0027 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0027 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 000D ÷ 00AD ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 000D ÷ 0308 × 00AD ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 000D ÷ 0300 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 000D ÷ 0308 × 0300 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 000D ÷ 0061 × 2060 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0061 × 2060 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 000D ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 000D ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 000D ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 000D ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 000D ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 000D ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 000D ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 000D ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 000A ÷ 0001 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] <START OF HEADING> (Other) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0001 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 000A ÷ 000D ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 000D ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 000A ÷ 000A ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 000A ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 000A ÷ 000B ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 000B ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 000A ÷ 3031 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 3031 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 000A ÷ 0041 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0041 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 000A ÷ 003A ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COLON (MidLetter) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 003A ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 000A ÷ 002C ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMMA (MidNum) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 002C ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 000A ÷ 002E ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 002E ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 000A ÷ 0030 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0030 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 000A ÷ 005F ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 005F ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 000A ÷ 1F1E6 ÷    #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 000A ÷ 05D0 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 05D0 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 000A ÷ 0022 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0022 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 000A ÷ 0027 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0027 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 000A ÷ 00AD ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 000A ÷ 0308 × 00AD ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 000A ÷ 0300 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 000A ÷ 0308 × 0300 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 000A ÷ 0061 × 2060 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0061 × 2060 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 000A ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 000A ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 000A ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 000A ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 000A ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 000A ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 000A ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 000A ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 000B ÷ 0001 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] <START OF HEADING> (Other) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 0001 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 000B ÷ 000D ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 000D ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 000B ÷ 000A ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 000A ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 000B ÷ 000B ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 000B ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 000B ÷ 3031 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 3031 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 000B ÷ 0041 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 0041 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 000B ÷ 003A ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COLON (MidLetter) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 003A ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 000B ÷ 002C ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMMA (MidNum) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 002C ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 000B ÷ 002E ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 002E ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 000B ÷ 0030 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 0030 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 000B ÷ 005F ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 005F ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 000B ÷ 1F1E6 ÷    #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 000B ÷ 05D0 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 05D0 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 000B ÷ 0022 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 0022 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 000B ÷ 0027 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 0027 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 000B ÷ 00AD ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 000B ÷ 0308 × 00AD ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 000B ÷ 0300 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 000B ÷ 0308 × 0300 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 000B ÷ 0061 × 2060 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 0061 × 2060 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 000B ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 000B ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 000B ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 000B ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 000B ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 000B ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 000B ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 000B ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 000B ÷ 0308 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] <LINE TABULATION> (Newline) ÷ [3.1] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 3031 ÷ 0001 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 3031 × 0308 ÷ 0001 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 3031 ÷ 000D ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 3031 × 0308 ÷ 000D ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 3031 ÷ 000A ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 3031 × 0308 ÷ 000A ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 3031 ÷ 000B ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 3031 × 0308 ÷ 000B ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 3031 × 3031 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [13.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 3031 × 0308 × 3031 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 3031 ÷ 0041 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 3031 × 0308 ÷ 0041 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 3031 ÷ 003A ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 3031 × 0308 ÷ 003A ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 3031 ÷ 002C ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 3031 × 0308 ÷ 002C ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 3031 ÷ 002E ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 3031 × 0308 ÷ 002E ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 3031 ÷ 0030 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 3031 × 0308 ÷ 0030 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 3031 × 005F ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [13.1] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 3031 × 0308 × 005F ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.1] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 3031 ÷ 1F1E6 ÷    #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 3031 × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 3031 ÷ 05D0 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 3031 × 0308 ÷ 05D0 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 3031 ÷ 0022 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 3031 × 0308 ÷ 0022 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 3031 ÷ 0027 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 3031 × 0308 ÷ 0027 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 3031 × 00AD ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 3031 × 0308 × 00AD ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 3031 × 0300 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 3031 × 0308 × 0300 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 3031 ÷ 0061 × 2060 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 3031 × 0308 ÷ 0061 × 2060 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 3031 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 3031 × 0308 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 3031 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 3031 × 0308 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 3031 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 3031 × 0308 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 3031 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 3031 × 0308 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 3031 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 3031 × 0308 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 3031 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 3031 × 0308 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 3031 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 3031 × 0308 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 3031 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 3031 × 0308 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] VERTICAL KANA REPEAT MARK (Katakana) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0041 ÷ 0001 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0041 × 0308 ÷ 0001 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0041 ÷ 000D ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0041 × 0308 ÷ 000D ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0041 ÷ 000A ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0041 × 0308 ÷ 000A ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0041 ÷ 000B ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0041 × 0308 ÷ 000B ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0041 ÷ 3031 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0041 × 0308 ÷ 3031 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0041 × 0041 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [5.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0041 × 0308 × 0041 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0041 ÷ 003A ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0041 × 0308 ÷ 003A ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0041 ÷ 002C ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0041 × 0308 ÷ 002C ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0041 ÷ 002E ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0041 × 0308 ÷ 002E ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0041 × 0030 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [9.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0041 × 0308 × 0030 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [9.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0041 × 005F ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [13.1] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0041 × 0308 × 005F ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.1] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0041 ÷ 1F1E6 ÷    #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0041 × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0041 × 05D0 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [5.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0041 × 0308 × 05D0 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0041 ÷ 0022 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0041 × 0308 ÷ 0022 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0041 ÷ 0027 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0041 × 0308 ÷ 0027 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0041 × 00AD ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0041 × 0308 × 00AD ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0041 × 0300 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0041 × 0308 × 0300 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0041 × 0061 × 2060 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [5.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0041 × 0308 × 0061 × 2060 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0041 × 0061 ÷ 003A ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0041 × 0308 × 0061 ÷ 003A ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0041 × 0061 ÷ 0027 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0041 × 0308 × 0061 ÷ 0027 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0041 × 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0041 × 0308 × 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0041 × 0061 ÷ 002C ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0041 × 0308 × 0061 ÷ 002C ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0041 × 0031 ÷ 003A ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0041 × 0308 × 0031 ÷ 003A ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0041 × 0031 ÷ 0027 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0041 × 0308 × 0031 ÷ 0027 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0041 × 0031 ÷ 002C ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0041 × 0308 × 0031 ÷ 002C ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0041 × 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0041 × 0308 × 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] LATIN CAPITAL LETTER A (ALetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 003A ÷ 0001 ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 003A × 0308 ÷ 0001 ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 003A ÷ 000D ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 003A × 0308 ÷ 000D ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 003A ÷ 000A ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 003A × 0308 ÷ 000A ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 003A ÷ 000B ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 003A × 0308 ÷ 000B ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 003A ÷ 3031 ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 003A × 0308 ÷ 3031 ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 003A ÷ 0041 ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 003A × 0308 ÷ 0041 ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 003A ÷ 003A ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 003A × 0308 ÷ 003A ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 003A ÷ 002C ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 003A × 0308 ÷ 002C ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 003A ÷ 002E ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 003A × 0308 ÷ 002E ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 003A ÷ 0030 ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 003A × 0308 ÷ 0030 ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 003A ÷ 005F ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 003A × 0308 ÷ 005F ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 003A ÷ 1F1E6 ÷    #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 003A × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 003A ÷ 05D0 ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 003A × 0308 ÷ 05D0 ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 003A ÷ 0022 ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 003A × 0308 ÷ 0022 ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 003A ÷ 0027 ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 003A × 0308 ÷ 0027 ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 003A × 00AD ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 003A × 0308 × 00AD ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 003A × 0300 ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 003A × 0308 × 0300 ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 003A ÷ 0061 × 2060 ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 003A × 0308 ÷ 0061 × 2060 ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 003A ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 003A × 0308 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 003A ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 003A × 0308 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 003A ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 003A × 0308 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 003A ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 003A × 0308 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 003A ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 003A × 0308 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 003A ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 003A × 0308 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 003A ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 003A × 0308 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 003A ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] COLON (MidLetter) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 003A × 0308 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 002C ÷ 0001 ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 002C × 0308 ÷ 0001 ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 002C ÷ 000D ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 002C × 0308 ÷ 000D ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 002C ÷ 000A ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 002C × 0308 ÷ 000A ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 002C ÷ 000B ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 002C × 0308 ÷ 000B ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 002C ÷ 3031 ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 002C × 0308 ÷ 3031 ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 002C ÷ 0041 ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 002C × 0308 ÷ 0041 ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 002C ÷ 003A ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 002C × 0308 ÷ 003A ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 002C ÷ 002C ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 002C × 0308 ÷ 002C ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 002C ÷ 002E ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 002C × 0308 ÷ 002E ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 002C ÷ 0030 ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 002C × 0308 ÷ 0030 ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 002C ÷ 005F ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 002C × 0308 ÷ 005F ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 002C ÷ 1F1E6 ÷    #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 002C × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 002C ÷ 05D0 ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 002C × 0308 ÷ 05D0 ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 002C ÷ 0022 ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 002C × 0308 ÷ 0022 ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 002C ÷ 0027 ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 002C × 0308 ÷ 0027 ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 002C × 00AD ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 002C × 0308 × 00AD ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 002C × 0300 ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 002C × 0308 × 0300 ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 002C ÷ 0061 × 2060 ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 002C × 0308 ÷ 0061 × 2060 ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 002C ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 002C × 0308 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 002C ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 002C × 0308 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 002C ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 002C × 0308 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 002C ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 002C × 0308 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 002C ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 002C × 0308 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 002C ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 002C × 0308 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 002C ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 002C × 0308 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 002C ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] COMMA (MidNum) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 002C × 0308 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 002E ÷ 0001 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 002E × 0308 ÷ 0001 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 002E ÷ 000D ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 002E × 0308 ÷ 000D ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 002E ÷ 000A ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 002E × 0308 ÷ 000A ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 002E ÷ 000B ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 002E × 0308 ÷ 000B ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 002E ÷ 3031 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 002E × 0308 ÷ 3031 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 002E ÷ 0041 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 002E × 0308 ÷ 0041 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 002E ÷ 003A ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 002E × 0308 ÷ 003A ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 002E ÷ 002C ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 002E × 0308 ÷ 002C ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 002E ÷ 002E ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 002E × 0308 ÷ 002E ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 002E ÷ 0030 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 002E × 0308 ÷ 0030 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 002E ÷ 005F ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 002E × 0308 ÷ 005F ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 002E ÷ 1F1E6 ÷    #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 002E × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 002E ÷ 05D0 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 002E × 0308 ÷ 05D0 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 002E ÷ 0022 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 002E × 0308 ÷ 0022 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 002E ÷ 0027 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 002E × 0308 ÷ 0027 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 002E × 00AD ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 002E × 0308 × 00AD ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 002E × 0300 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 002E × 0308 × 0300 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 002E ÷ 0061 × 2060 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 002E × 0308 ÷ 0061 × 2060 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 002E ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 002E × 0308 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 002E ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 002E × 0308 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 002E ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 002E × 0308 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 002E ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 002E × 0308 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 002E ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 002E × 0308 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 002E ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 002E × 0308 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 002E ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 002E × 0308 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 002E ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 002E × 0308 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] FULL STOP (MidNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0030 ÷ 0001 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0030 × 0308 ÷ 0001 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0030 ÷ 000D ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0030 × 0308 ÷ 000D ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0030 ÷ 000A ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0030 × 0308 ÷ 000A ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0030 ÷ 000B ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0030 × 0308 ÷ 000B ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0030 ÷ 3031 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0030 × 0308 ÷ 3031 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0030 × 0041 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [10.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0030 × 0308 × 0041 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) × [10.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0030 ÷ 003A ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0030 × 0308 ÷ 003A ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0030 ÷ 002C ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0030 × 0308 ÷ 002C ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0030 ÷ 002E ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0030 × 0308 ÷ 002E ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0030 × 0030 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [8.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0030 × 0308 × 0030 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) × [8.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0030 × 005F ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [13.1] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0030 × 0308 × 005F ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.1] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0030 ÷ 1F1E6 ÷    #  ÷ [0.2] DIGIT ZERO (Numeric) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0030 × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0030 × 05D0 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [10.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0030 × 0308 × 05D0 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) × [10.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0030 ÷ 0022 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0030 × 0308 ÷ 0022 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0030 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0030 × 0308 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0030 × 00AD ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0030 × 0308 × 00AD ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0030 × 0300 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0030 × 0308 × 0300 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0030 × 0061 × 2060 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [10.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0030 × 0308 × 0061 × 2060 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) × [10.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0030 × 0061 ÷ 003A ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [10.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0030 × 0308 × 0061 ÷ 003A ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) × [10.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0030 × 0061 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [10.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0030 × 0308 × 0061 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) × [10.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0030 × 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [10.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0030 × 0308 × 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) × [10.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0030 × 0061 ÷ 002C ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [10.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0030 × 0308 × 0061 ÷ 002C ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) × [10.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0030 × 0031 ÷ 003A ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [8.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0030 × 0308 × 0031 ÷ 003A ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) × [8.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0030 × 0031 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [8.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0030 × 0308 × 0031 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) × [8.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0030 × 0031 ÷ 002C ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [8.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0030 × 0308 × 0031 ÷ 002C ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) × [8.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0030 × 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [8.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0030 × 0308 × 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] DIGIT ZERO (Numeric) × [4.0] COMBINING DIAERESIS (Extend_FE) × [8.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 005F ÷ 0001 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 005F × 0308 ÷ 0001 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 005F ÷ 000D ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 005F × 0308 ÷ 000D ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 005F ÷ 000A ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 005F × 0308 ÷ 000A ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 005F ÷ 000B ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 005F × 0308 ÷ 000B ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 005F × 3031 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [13.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 005F × 0308 × 3031 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.2] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 005F × 0041 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [13.2] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 005F × 0308 × 0041 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.2] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 005F ÷ 003A ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 005F × 0308 ÷ 003A ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 005F ÷ 002C ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 005F × 0308 ÷ 002C ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 005F ÷ 002E ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 005F × 0308 ÷ 002E ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 005F × 0030 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [13.2] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 005F × 0308 × 0030 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.2] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 005F × 005F ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [13.1] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 005F × 0308 × 005F ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.1] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 005F ÷ 1F1E6 ÷    #  ÷ [0.2] LOW LINE (ExtendNumLet) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 005F × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 005F × 05D0 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [13.2] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 005F × 0308 × 05D0 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.2] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 005F ÷ 0022 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 005F × 0308 ÷ 0022 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 005F ÷ 0027 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 005F × 0308 ÷ 0027 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 005F × 00AD ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 005F × 0308 × 00AD ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 005F × 0300 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 005F × 0308 × 0300 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 005F × 0061 × 2060 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [13.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 005F × 0308 × 0061 × 2060 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 005F × 0061 ÷ 003A ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [13.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 005F × 0308 × 0061 ÷ 003A ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 005F × 0061 ÷ 0027 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [13.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 005F × 0308 × 0061 ÷ 0027 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 005F × 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [13.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 005F × 0308 × 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 005F × 0061 ÷ 002C ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [13.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 005F × 0308 × 0061 ÷ 002C ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 005F × 0031 ÷ 003A ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [13.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 005F × 0308 × 0031 ÷ 003A ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 005F × 0031 ÷ 0027 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [13.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 005F × 0308 × 0031 ÷ 0027 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 005F × 0031 ÷ 002C ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [13.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 005F × 0308 × 0031 ÷ 002C ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 005F × 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [13.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 005F × 0308 × 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] LOW LINE (ExtendNumLet) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 1F1E6 ÷ 0001 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 0001 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 1F1E6 ÷ 000D ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 000D ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 1F1E6 ÷ 000A ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 000A ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 1F1E6 ÷ 000B ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 000B ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 1F1E6 ÷ 3031 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 3031 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 1F1E6 ÷ 0041 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 0041 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 1F1E6 ÷ 003A ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 003A ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 1F1E6 ÷ 002C ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 002C ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 1F1E6 ÷ 002E ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 002E ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 1F1E6 ÷ 0030 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 0030 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 1F1E6 ÷ 005F ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 005F ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 1F1E6 × 1F1E6 ÷   #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [13.3] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 1F1E6 × 0308 × 1F1E6 ÷   #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.3] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 1F1E6 ÷ 05D0 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 05D0 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 1F1E6 ÷ 0022 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 0022 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 1F1E6 ÷ 0027 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 0027 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 1F1E6 × 00AD ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 1F1E6 × 0308 × 00AD ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 1F1E6 × 0300 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 1F1E6 × 0308 × 0300 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 1F1E6 ÷ 0061 × 2060 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 0061 × 2060 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 1F1E6 ÷ 0061 ÷ 003A ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 0061 ÷ 003A ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 1F1E6 ÷ 0061 ÷ 0027 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 0061 ÷ 0027 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 1F1E6 ÷ 0061 ÷ 0027 × 2060 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 0061 ÷ 0027 × 2060 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 1F1E6 ÷ 0061 ÷ 002C ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 0061 ÷ 002C ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 1F1E6 ÷ 0031 ÷ 003A ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 0031 ÷ 003A ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 1F1E6 ÷ 0031 ÷ 0027 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 0031 ÷ 0027 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 1F1E6 ÷ 0031 ÷ 002C ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 0031 ÷ 002C ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 1F1E6 ÷ 0031 ÷ 002E × 2060 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 1F1E6 × 0308 ÷ 0031 ÷ 002E × 2060 ÷    #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 05D0 ÷ 0001 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 05D0 × 0308 ÷ 0001 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 05D0 ÷ 000D ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 05D0 × 0308 ÷ 000D ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 05D0 ÷ 000A ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 05D0 × 0308 ÷ 000A ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 05D0 ÷ 000B ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 05D0 × 0308 ÷ 000B ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 05D0 ÷ 3031 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 05D0 × 0308 ÷ 3031 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 05D0 × 0041 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [5.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 05D0 × 0308 × 0041 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 05D0 ÷ 003A ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 05D0 × 0308 ÷ 003A ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 05D0 ÷ 002C ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 05D0 × 0308 ÷ 002C ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 05D0 ÷ 002E ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 05D0 × 0308 ÷ 002E ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 05D0 × 0030 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [9.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 05D0 × 0308 × 0030 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [9.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 05D0 × 005F ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [13.1] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 05D0 × 0308 × 005F ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.1] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 05D0 ÷ 1F1E6 ÷    #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 05D0 × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 05D0 × 05D0 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [5.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 05D0 × 0308 × 05D0 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 05D0 ÷ 0022 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 05D0 × 0308 ÷ 0022 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 05D0 × 0027 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [7.1] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 05D0 × 0308 × 0027 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.1] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 05D0 × 00AD ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 05D0 × 0308 × 00AD ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 05D0 × 0300 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 05D0 × 0308 × 0300 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 05D0 × 0061 × 2060 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [5.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 05D0 × 0308 × 0061 × 2060 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 05D0 × 0061 ÷ 003A ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 05D0 × 0308 × 0061 ÷ 003A ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 05D0 × 0061 ÷ 0027 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 05D0 × 0308 × 0061 ÷ 0027 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 05D0 × 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 05D0 × 0308 × 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 05D0 × 0061 ÷ 002C ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 05D0 × 0308 × 0061 ÷ 002C ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 05D0 × 0031 ÷ 003A ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 05D0 × 0308 × 0031 ÷ 003A ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 05D0 × 0031 ÷ 0027 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 05D0 × 0308 × 0031 ÷ 0027 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 05D0 × 0031 ÷ 002C ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 05D0 × 0308 × 0031 ÷ 002C ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 05D0 × 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 05D0 × 0308 × 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] HEBREW LETTER ALEF (Hebrew_Letter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0022 ÷ 0001 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0022 × 0308 ÷ 0001 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0022 ÷ 000D ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0022 × 0308 ÷ 000D ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0022 ÷ 000A ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0022 × 0308 ÷ 000A ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0022 ÷ 000B ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0022 × 0308 ÷ 000B ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0022 ÷ 3031 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0022 × 0308 ÷ 3031 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0022 ÷ 0041 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0022 × 0308 ÷ 0041 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0022 ÷ 003A ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0022 × 0308 ÷ 003A ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0022 ÷ 002C ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0022 × 0308 ÷ 002C ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0022 ÷ 002E ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0022 × 0308 ÷ 002E ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0022 ÷ 0030 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0022 × 0308 ÷ 0030 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0022 ÷ 005F ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0022 × 0308 ÷ 005F ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0022 ÷ 1F1E6 ÷    #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0022 × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0022 ÷ 05D0 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0022 × 0308 ÷ 05D0 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0022 ÷ 0022 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0022 × 0308 ÷ 0022 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0022 ÷ 0027 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0022 × 0308 ÷ 0027 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0022 × 00AD ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0022 × 0308 × 00AD ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0022 × 0300 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0022 × 0308 × 0300 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0022 ÷ 0061 × 2060 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0022 × 0308 ÷ 0061 × 2060 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0022 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0022 × 0308 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0022 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0022 × 0308 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0022 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0022 × 0308 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0022 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0022 × 0308 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0022 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0022 × 0308 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0022 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0022 × 0308 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0022 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0022 × 0308 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0022 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0022 × 0308 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] QUOTATION MARK (Double_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0027 ÷ 0001 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0027 × 0308 ÷ 0001 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0027 ÷ 000D ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0027 × 0308 ÷ 000D ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0027 ÷ 000A ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0027 × 0308 ÷ 000A ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0027 ÷ 000B ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0027 × 0308 ÷ 000B ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0027 ÷ 3031 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0027 × 0308 ÷ 3031 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0027 ÷ 0041 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0027 × 0308 ÷ 0041 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0027 ÷ 003A ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0027 × 0308 ÷ 003A ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0027 ÷ 002C ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0027 × 0308 ÷ 002C ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0027 ÷ 002E ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0027 × 0308 ÷ 002E ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0027 ÷ 0030 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0027 × 0308 ÷ 0030 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0027 ÷ 005F ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0027 × 0308 ÷ 005F ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0027 ÷ 1F1E6 ÷    #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0027 × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0027 ÷ 05D0 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0027 × 0308 ÷ 05D0 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0027 ÷ 0022 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0027 × 0308 ÷ 0022 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0027 ÷ 0027 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0027 × 0308 ÷ 0027 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0027 × 00AD ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0027 × 0308 × 00AD ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0027 × 0300 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0027 × 0308 × 0300 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0027 ÷ 0061 × 2060 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0027 × 0308 ÷ 0061 × 2060 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0027 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0027 × 0308 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0027 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0027 × 0308 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0027 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0027 × 0308 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0027 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0027 × 0308 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0027 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0027 × 0308 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0027 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0027 × 0308 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0027 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0027 × 0308 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0027 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0027 × 0308 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 00AD ÷ 0001 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 00AD × 0308 ÷ 0001 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 00AD ÷ 000D ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 00AD × 0308 ÷ 000D ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 00AD ÷ 000A ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 00AD × 0308 ÷ 000A ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 00AD ÷ 000B ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 00AD × 0308 ÷ 000B ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 00AD ÷ 3031 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 00AD × 0308 ÷ 3031 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 00AD ÷ 0041 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 00AD × 0308 ÷ 0041 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 00AD ÷ 003A ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 00AD × 0308 ÷ 003A ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 00AD ÷ 002C ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 00AD × 0308 ÷ 002C ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 00AD ÷ 002E ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 00AD × 0308 ÷ 002E ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 00AD ÷ 0030 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 00AD × 0308 ÷ 0030 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 00AD ÷ 005F ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 00AD × 0308 ÷ 005F ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 00AD ÷ 1F1E6 ÷    #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 00AD × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 00AD ÷ 05D0 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 00AD × 0308 ÷ 05D0 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 00AD ÷ 0022 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 00AD × 0308 ÷ 0022 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 00AD ÷ 0027 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 00AD × 0308 ÷ 0027 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 00AD × 00AD ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 00AD × 0308 × 00AD ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 00AD × 0300 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 00AD × 0308 × 0300 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 00AD ÷ 0061 × 2060 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 00AD × 0308 ÷ 0061 × 2060 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 00AD ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 00AD × 0308 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 00AD ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 00AD × 0308 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 00AD ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 00AD × 0308 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 00AD ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 00AD × 0308 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 00AD ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 00AD × 0308 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 00AD ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 00AD × 0308 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 00AD ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 00AD × 0308 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 00AD ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 00AD × 0308 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] SOFT HYPHEN (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0300 ÷ 0001 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0001 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0300 ÷ 000D ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0300 × 0308 ÷ 000D ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0300 ÷ 000A ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0300 × 0308 ÷ 000A ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0300 ÷ 000B ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0300 × 0308 ÷ 000B ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0300 ÷ 3031 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0300 × 0308 ÷ 3031 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0300 ÷ 0041 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0041 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0300 ÷ 003A ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0300 × 0308 ÷ 003A ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0300 ÷ 002C ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0300 × 0308 ÷ 002C ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0300 ÷ 002E ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0300 × 0308 ÷ 002E ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0300 ÷ 0030 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0030 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0300 ÷ 005F ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0300 × 0308 ÷ 005F ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0300 ÷ 1F1E6 ÷    #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0300 × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0300 ÷ 05D0 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0300 × 0308 ÷ 05D0 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0300 ÷ 0022 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0022 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0300 ÷ 0027 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0027 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0300 × 00AD ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0300 × 0308 × 00AD ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0300 × 0300 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0300 × 0308 × 0300 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0300 ÷ 0061 × 2060 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0061 × 2060 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0300 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0300 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0300 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0300 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0300 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0300 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0300 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0300 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 × 2060 ÷ 0001 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0061 × 2060 × 0308 ÷ 0001 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0061 × 2060 ÷ 000D ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0061 × 2060 × 0308 ÷ 000D ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0061 × 2060 ÷ 000A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0061 × 2060 × 0308 ÷ 000A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0061 × 2060 ÷ 000B ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0061 × 2060 × 0308 ÷ 000B ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0061 × 2060 ÷ 3031 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0061 × 2060 × 0308 ÷ 3031 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0061 × 2060 × 0041 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [5.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0061 × 2060 × 0308 × 0041 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0061 × 2060 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 × 2060 × 0308 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 × 2060 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 × 2060 × 0308 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 × 2060 ÷ 002E ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0061 × 2060 × 0308 ÷ 002E ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0061 × 2060 × 0030 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [9.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0061 × 2060 × 0308 × 0030 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [9.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0061 × 2060 × 005F ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [13.1] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0061 × 2060 × 0308 × 005F ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [13.1] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0061 × 2060 ÷ 1F1E6 ÷    #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0061 × 2060 × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0061 × 2060 × 05D0 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [5.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0061 × 2060 × 0308 × 05D0 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0061 × 2060 ÷ 0022 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0061 × 2060 × 0308 ÷ 0022 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0061 × 2060 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 × 2060 × 0308 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 × 2060 × 00AD ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0061 × 2060 × 0308 × 00AD ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0061 × 2060 × 0300 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0061 × 2060 × 0308 × 0300 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0061 × 2060 × 0061 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [5.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 × 2060 × 0308 × 0061 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 × 2060 × 0061 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 × 2060 × 0308 × 0061 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 × 2060 × 0061 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 × 2060 × 0308 × 0061 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 × 2060 × 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 × 2060 × 0308 × 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 × 2060 × 0061 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 × 2060 × 0308 × 0061 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [5.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 × 2060 × 0031 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 × 2060 × 0308 × 0031 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 × 2060 × 0031 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 × 2060 × 0308 × 0031 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 × 2060 × 0031 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 × 2060 × 0308 × 0031 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 × 2060 × 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 × 2060 × 0308 × 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [9.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 003A ÷ 0001 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 ÷ 0001 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0061 ÷ 003A ÷ 000D ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 ÷ 000D ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0061 ÷ 003A ÷ 000A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 ÷ 000A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0061 ÷ 003A ÷ 000B ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 ÷ 000B ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0061 ÷ 003A ÷ 3031 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 ÷ 3031 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0061 × 003A × 0041 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] COLON (MidLetter) × [7.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0061 × 003A × 0308 × 0041 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0061 ÷ 003A ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 ÷ 003A ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 003A ÷ 002E ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 ÷ 002E ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0061 ÷ 003A ÷ 0030 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 ÷ 0030 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0061 ÷ 003A ÷ 005F ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 ÷ 005F ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0061 ÷ 003A ÷ 1F1E6 ÷    #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0061 × 003A × 05D0 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] COLON (MidLetter) × [7.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0061 × 003A × 0308 × 05D0 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0061 ÷ 003A ÷ 0022 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 ÷ 0022 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0061 ÷ 003A ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 ÷ 003A × 00AD ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 × 00AD ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 003A × 0300 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 × 0300 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0061 × 003A × 0061 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] COLON (MidLetter) × [7.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 × 003A × 0308 × 0061 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 × 003A × 0061 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] COLON (MidLetter) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 × 003A × 0308 × 0061 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 × 003A × 0061 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] COLON (MidLetter) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 × 003A × 0308 × 0061 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 × 003A × 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] COLON (MidLetter) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 × 003A × 0308 × 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 × 003A × 0061 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] COLON (MidLetter) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 × 003A × 0308 × 0061 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 003A ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 ÷ 003A ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 ÷ 003A ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 003A ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 003A × 0308 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 0027 ÷ 0001 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 ÷ 0001 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0061 ÷ 0027 ÷ 000D ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 ÷ 000D ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0061 ÷ 0027 ÷ 000A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 ÷ 000A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0061 ÷ 0027 ÷ 000B ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 ÷ 000B ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0061 ÷ 0027 ÷ 3031 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 ÷ 3031 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0061 × 0027 × 0041 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [7.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0061 × 0027 × 0308 × 0041 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0061 ÷ 0027 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 ÷ 0027 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 0027 ÷ 002E ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 ÷ 002E ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0061 ÷ 0027 ÷ 0030 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 ÷ 0030 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0061 ÷ 0027 ÷ 005F ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 ÷ 005F ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0061 ÷ 0027 ÷ 1F1E6 ÷    #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0061 × 0027 × 05D0 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [7.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0061 × 0027 × 0308 × 05D0 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0061 ÷ 0027 ÷ 0022 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 ÷ 0022 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0061 ÷ 0027 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 ÷ 0027 × 00AD ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 × 00AD ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0300 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 × 0300 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0061 × 0027 × 0061 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [7.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 × 0027 × 0308 × 0061 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 × 0027 × 0061 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 × 0027 × 0308 × 0061 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 × 0027 × 0061 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 × 0027 × 0308 × 0061 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 × 0027 × 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 × 0027 × 0308 × 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 × 0027 × 0061 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 × 0027 × 0308 × 0061 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 0027 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 ÷ 0027 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 ÷ 0027 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 0027 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 0027 × 0308 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 ÷ 0001 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 0001 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 ÷ 000D ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 000D ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 ÷ 000A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 000A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 ÷ 000B ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 000B ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 ÷ 3031 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 3031 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0061 × 0027 × 2060 × 0041 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [7.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0061 × 0027 × 2060 × 0308 × 0041 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 ÷ 002E ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 002E ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 ÷ 0030 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 0030 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 ÷ 005F ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 005F ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 ÷ 1F1E6 ÷    #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0061 × 0027 × 2060 × 05D0 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [7.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0061 × 0027 × 2060 × 0308 × 05D0 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 ÷ 0022 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 0022 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 00AD ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 × 00AD ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0300 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 × 0300 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0061 × 0027 × 2060 × 0061 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [7.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 × 0027 × 2060 × 0308 × 0061 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 × 0027 × 2060 × 0061 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 × 0027 × 2060 × 0308 × 0061 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 × 0027 × 2060 × 0061 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 × 0027 × 2060 × 0308 × 0061 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 × 0027 × 2060 × 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 × 0027 × 2060 × 0308 × 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 × 0027 × 2060 × 0061 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 × 0027 × 2060 × 0308 × 0061 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [7.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 0027 × 2060 × 0308 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 0001 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 0001 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 000D ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 000D ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 000A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 000A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 000B ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 000B ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 3031 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 3031 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 0041 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 0041 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 002E ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 002E ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 0030 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 0030 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 005F ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 005F ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 1F1E6 ÷    #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 05D0 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 05D0 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 0022 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 0022 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 ÷ 002C × 00AD ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 × 00AD ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 002C × 0300 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 × 0300 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 0061 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 0061 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0061 ÷ 002C ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 002C × 0308 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 0001 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 0001 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 000D ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 000D ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 000A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 000A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 000B ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 000B ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 3031 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 3031 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 0041 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 0041 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 002E ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 002E ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 0030 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 0030 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 005F ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 005F ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 1F1E6 ÷    #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 05D0 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 05D0 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 0022 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 0022 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 ÷ 003A × 00AD ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 × 00AD ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 003A × 0300 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 × 0300 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 0061 × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 0061 × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 0031 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 0031 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 0031 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 ÷ 003A ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 003A × 0308 ÷ 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 0001 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 0001 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 000D ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 000D ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 000A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 000A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 000B ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 000B ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 3031 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 3031 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 0041 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 0041 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 002E ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 002E ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0031 × 0027 × 0030 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] APOSTROPHE (Single_Quote) × [11.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0031 × 0027 × 0308 × 0030 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [11.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 005F ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 005F ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 1F1E6 ÷    #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 05D0 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 05D0 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 0022 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 0022 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 ÷ 0027 × 00AD ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 × 00AD ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0300 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 × 0300 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 0061 × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 0061 × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 0027 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 ÷ 0027 × 0308 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 × 0027 × 0031 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] APOSTROPHE (Single_Quote) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 × 0027 × 0308 × 0031 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 × 0027 × 0031 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] APOSTROPHE (Single_Quote) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 × 0027 × 0308 × 0031 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 × 0027 × 0031 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] APOSTROPHE (Single_Quote) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 × 0027 × 0308 × 0031 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 × 0027 × 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] APOSTROPHE (Single_Quote) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 × 0027 × 0308 × 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] APOSTROPHE (Single_Quote) × [4.0] COMBINING DIAERESIS (Extend_FE) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 0001 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 0001 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 000D ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 000D ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 000A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 000A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 000B ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 000B ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 3031 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 3031 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 0041 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 0041 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 002E ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 002E ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0031 × 002C × 0030 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] COMMA (MidNum) × [11.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0031 × 002C × 0308 × 0030 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) × [11.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 005F ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 005F ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 1F1E6 ÷    #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 05D0 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 05D0 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 0022 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 0022 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 ÷ 002C × 00AD ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 × 00AD ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 002C × 0300 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 × 0300 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 0061 × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 0061 × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 002C ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 ÷ 002C × 0308 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 × 002C × 0031 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] COMMA (MidNum) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 × 002C × 0308 × 0031 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 × 002C × 0031 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] COMMA (MidNum) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 × 002C × 0308 × 0031 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 × 002C × 0031 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] COMMA (MidNum) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 × 002C × 0308 × 0031 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 × 002C × 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] COMMA (MidNum) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 × 002C × 0308 × 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] COMMA (MidNum) × [4.0] COMBINING DIAERESIS (Extend_FE) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 0001 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 0001 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] <START OF HEADING> (Other) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 000D ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 000D ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 000A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 000A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 000B ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 000B ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [3.2] <LINE TABULATION> (Newline) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 3031 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 3031 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] VERTICAL KANA REPEAT MARK (Katakana) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 0041 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 0041 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN CAPITAL LETTER A (ALetter) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 002E ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 002E ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] FULL STOP (MidNumLet) ÷ [0.3]
+÷ 0031 × 002E × 2060 × 0030 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [11.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0031 × 002E × 2060 × 0308 × 0030 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [11.0] DIGIT ZERO (Numeric) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 005F ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 005F ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LOW LINE (ExtendNumLet) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 1F1E6 ÷    #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 1F1E6 ÷    #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 05D0 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 05D0 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] HEBREW LETTER ALEF (Hebrew_Letter) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 0022 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 0022 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] QUOTATION MARK (Double_Quote) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 00AD ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 × 00AD ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] SOFT HYPHEN (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0300 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 × 0300 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [4.0] COMBINING GRAVE ACCENT (Extend_FE) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 0061 × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 0061 × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 0061 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 0061 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 0061 ÷ 0027 × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 ÷ 002E × 2060 × 0308 ÷ 0061 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 × 002E × 2060 × 0031 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 × 002E × 2060 × 0308 × 0031 ÷ 003A ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] COLON (MidLetter) ÷ [0.3]
+÷ 0031 × 002E × 2060 × 0031 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 × 002E × 2060 × 0308 × 0031 ÷ 0027 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] APOSTROPHE (Single_Quote) ÷ [0.3]
+÷ 0031 × 002E × 2060 × 0031 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 × 002E × 2060 × 0308 × 0031 ÷ 002C ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] COMMA (MidNum) ÷ [0.3]
+÷ 0031 × 002E × 2060 × 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0031 × 002E × 2060 × 0308 × 0031 ÷ 002E × 2060 ÷     #  ÷ [0.2] DIGIT ONE (Numeric) × [12.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [4.0] COMBINING DIAERESIS (Extend_FE) × [11.0] DIGIT ONE (Numeric) ÷ [999.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0063 × 0061 × 006E × 0027 × 0074 ÷     #  ÷ [0.2] LATIN SMALL LETTER C (ALetter) × [5.0] LATIN SMALL LETTER A (ALetter) × [5.0] LATIN SMALL LETTER N (ALetter) × [6.0] APOSTROPHE (Single_Quote) × [7.0] LATIN SMALL LETTER T (ALetter) ÷ [0.3]
+÷ 0063 × 0061 × 006E × 2019 × 0074 ÷     #  ÷ [0.2] LATIN SMALL LETTER C (ALetter) × [5.0] LATIN SMALL LETTER A (ALetter) × [5.0] LATIN SMALL LETTER N (ALetter) × [6.0] RIGHT SINGLE QUOTATION MARK (MidNumLet) × [7.0] LATIN SMALL LETTER T (ALetter) ÷ [0.3]
+÷ 0061 × 0062 × 00AD × 0062 × 0079 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) × [5.0] LATIN SMALL LETTER B (ALetter) × [4.0] SOFT HYPHEN (Format_FE) × [5.0] LATIN SMALL LETTER B (ALetter) × [5.0] LATIN SMALL LETTER Y (ALetter) ÷ [0.3]
+÷ 0061 ÷ 0024 ÷ 002D ÷ 0033 × 0034 × 002C × 0035 × 0036 × 0037 × 002E × 0031 × 0034 ÷ 0025 ÷ 0062 ÷     #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] DOLLAR SIGN (Other) ÷ [999.0] HYPHEN-MINUS (Other) ÷ [999.0] DIGIT THREE (Numeric) × [8.0] DIGIT FOUR (Numeric) × [12.0] COMMA (MidNum) × [11.0] DIGIT FIVE (Numeric) × [8.0] DIGIT SIX (Numeric) × [8.0] DIGIT SEVEN (Numeric) × [12.0] FULL STOP (MidNumLet) × [11.0] DIGIT ONE (Numeric) × [8.0] DIGIT FOUR (Numeric) ÷ [999.0] PERCENT SIGN (Other) ÷ [999.0] LATIN SMALL LETTER B (ALetter) ÷ [0.3]
+÷ 0033 × 0061 ÷     #  ÷ [0.2] DIGIT THREE (Numeric) × [10.0] LATIN SMALL LETTER A (ALetter) ÷ [0.3]
+÷ 2060 ÷ 0063 × 2060 × 0061 × 2060 × 006E × 2060 × 0027 × 2060 × 0074 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) ÷ [999.0] LATIN SMALL LETTER C (ALetter) × [4.0] WORD JOINER (Format_FE) × [5.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [5.0] LATIN SMALL LETTER N (ALetter) × [4.0] WORD JOINER (Format_FE) × [6.0] APOSTROPHE (Single_Quote) × [4.0] WORD JOINER (Format_FE) × [7.0] LATIN SMALL LETTER T (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 ÷ 0063 × 2060 × 0061 × 2060 × 006E × 2060 × 2019 × 2060 × 0074 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) ÷ [999.0] LATIN SMALL LETTER C (ALetter) × [4.0] WORD JOINER (Format_FE) × [5.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [5.0] LATIN SMALL LETTER N (ALetter) × [4.0] WORD JOINER (Format_FE) × [6.0] RIGHT SINGLE QUOTATION MARK (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [7.0] LATIN SMALL LETTER T (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 ÷ 0061 × 2060 × 0062 × 2060 × 00AD × 2060 × 0062 × 2060 × 0079 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [5.0] LATIN SMALL LETTER B (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] SOFT HYPHEN (Format_FE) × [4.0] WORD JOINER (Format_FE) × [5.0] LATIN SMALL LETTER B (ALetter) × [4.0] WORD JOINER (Format_FE) × [5.0] LATIN SMALL LETTER Y (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 ÷ 0061 × 2060 ÷ 0024 × 2060 ÷ 002D × 2060 ÷ 0033 × 2060 × 0034 × 2060 × 002C × 2060 × 0035 × 2060 × 0036 × 2060 × 0037 × 2060 × 002E × 2060 × 0031 × 2060 × 0034 × 2060 ÷ 0025 × 2060 ÷ 0062 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) ÷ [999.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] DOLLAR SIGN (Other) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] HYPHEN-MINUS (Other) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] DIGIT THREE (Numeric) × [4.0] WORD JOINER (Format_FE) × [8.0] DIGIT FOUR (Numeric) × [4.0] WORD JOINER (Format_FE) × [12.0] COMMA (MidNum) × [4.0] WORD JOINER (Format_FE) × [11.0] DIGIT FIVE (Numeric) × [4.0] WORD JOINER (Format_FE) × [8.0] DIGIT SIX (Numeric) × [4.0] WORD JOINER (Format_FE) × [8.0] DIGIT SEVEN (Numeric) × [4.0] WORD JOINER (Format_FE) × [12.0] FULL STOP (MidNumLet) × [4.0] WORD JOINER (Format_FE) × [11.0] DIGIT ONE (Numeric) × [4.0] WORD JOINER (Format_FE) × [8.0] DIGIT FOUR (Numeric) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] PERCENT SIGN (Other) × [4.0] WORD JOINER (Format_FE) ÷ [999.0] LATIN SMALL LETTER B (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 2060 ÷ 0033 × 2060 × 0061 × 2060 × 2060 ÷     #  ÷ [0.2] WORD JOINER (Format_FE) ÷ [999.0] DIGIT THREE (Numeric) × [4.0] WORD JOINER (Format_FE) × [10.0] LATIN SMALL LETTER A (ALetter) × [4.0] WORD JOINER (Format_FE) × [4.0] WORD JOINER (Format_FE) ÷ [0.3]
+÷ 0061 ÷ 1F1E6 ÷ 0062 ÷    #  ÷ [0.2] LATIN SMALL LETTER A (ALetter) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) ÷ [999.0] LATIN SMALL LETTER B (ALetter) ÷ [0.3]
+÷ 1F1F7 × 1F1FA ÷   #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER R (Regional_Indicator) × [13.3] REGIONAL INDICATOR SYMBOL LETTER U (Regional_Indicator) ÷ [0.3]
+÷ 1F1F7 × 1F1FA × 1F1F8 ÷  #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER R (Regional_Indicator) × [13.3] REGIONAL INDICATOR SYMBOL LETTER U (Regional_Indicator) × [13.3] REGIONAL INDICATOR SYMBOL LETTER S (Regional_Indicator) ÷ [0.3]
+÷ 1F1F7 × 1F1FA × 1F1F8 × 1F1EA ÷ #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER R (Regional_Indicator) × [13.3] REGIONAL INDICATOR SYMBOL LETTER U (Regional_Indicator) × [13.3] REGIONAL INDICATOR SYMBOL LETTER S (Regional_Indicator) × [13.3] REGIONAL INDICATOR SYMBOL LETTER E (Regional_Indicator) ÷ [0.3]
+÷ 1F1F7 × 1F1FA ÷ 200B ÷ 1F1F8 × 1F1EA ÷ #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER R (Regional_Indicator) × [13.3] REGIONAL INDICATOR SYMBOL LETTER U (Regional_Indicator) ÷ [999.0] ZERO WIDTH SPACE (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER S (Regional_Indicator) × [13.3] REGIONAL INDICATOR SYMBOL LETTER E (Regional_Indicator) ÷ [0.3]
+÷ 1F1E6 × 1F1E7 × 1F1E8 ÷  #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [13.3] REGIONAL INDICATOR SYMBOL LETTER B (Regional_Indicator) × [13.3] REGIONAL INDICATOR SYMBOL LETTER C (Regional_Indicator) ÷ [0.3]
+÷ 1F1E6 × 200D × 1F1E7 × 1F1E8 ÷  #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [4.0] ZERO WIDTH JOINER (Extend_FE) × [13.3] REGIONAL INDICATOR SYMBOL LETTER B (Regional_Indicator) × [13.3] REGIONAL INDICATOR SYMBOL LETTER C (Regional_Indicator) ÷ [0.3]
+÷ 1F1E6 × 1F1E7 × 200D × 1F1E8 ÷  #  ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (Regional_Indicator) × [13.3] REGIONAL INDICATOR SYMBOL LETTER B (Regional_Indicator) × [4.0] ZERO WIDTH JOINER (Extend_FE) × [13.3] REGIONAL INDICATOR SYMBOL LETTER C (Regional_Indicator) ÷ [0.3]
+÷ 0020 × 200D ÷ 0646 ÷     #  ÷ [0.2] SPACE (Other) × [4.0] ZERO WIDTH JOINER (Extend_FE) ÷ [999.0] ARABIC LETTER NOON (ALetter) ÷ [0.3]
+÷ 0646 × 200D ÷ 0020 ÷     #  ÷ [0.2] ARABIC LETTER NOON (ALetter) × [4.0] ZERO WIDTH JOINER (Extend_FE) ÷ [999.0] SPACE (Other) ÷ [0.3]
+#
+# Lines: 1372
+#
+# EOF
index 742e2af..e796649 100644 (file)
@@ -956,7 +956,7 @@ my %why_obsolete;    # Documentation only
         # contains the same information, but without the algorithmically
         # determinable Hangul syllables'.  This file is not published, so it's
         # existence is not noted in the comment.
-        'Decomposition_Mapping' => 'Accessible via Unicode::Normalize or Unicode::UCD::prop_invmap()',
+        'Decomposition_Mapping' => 'Accessible via Unicode::Normalize or prop_invmap() or charprop() in Unicode::UCD::',
 
         'Indic_Matra_Category' => "Provisional",
         'Indic_Syllabic_Category' => "Provisional",
@@ -965,14 +965,14 @@ my %why_obsolete;    # Documentation only
         # to differentiate between it and gc=c, which can be written as 'isc',
         # which is the same characters as ISO_Comment's short name.
 
-        'Name' => "Accessible via \\N{...} or 'use charnames;' or Unicode::UCD::prop_invmap()",
+        'Name' => "Accessible via \\N{...} or 'use charnames;' or charprop() or prop_invmap() in Unicode::UCD::",
 
-        'Simple_Case_Folding' => "$simple.  Can access this through Unicode::UCD::casefold or Unicode::UCD::prop_invmap()",
-        'Simple_Lowercase_Mapping' => "$simple.  Can access this through Unicode::UCD::charinfo or Unicode::UCD::prop_invmap()",
-        'Simple_Titlecase_Mapping' => "$simple.  Can access this through Unicode::UCD::charinfo or Unicode::UCD::prop_invmap()",
-        'Simple_Uppercase_Mapping' => "$simple.  Can access this through Unicode::UCD::charinfo or Unicode::UCD::prop_invmap()",
+        'Simple_Case_Folding' => "$simple.  Can access this through casefold(), charprop(), or prop_invmap() in Unicode::UCD",
+        'Simple_Lowercase_Mapping' => "$simple.  Can access this through charinfo(), charprop(), or prop_invmap() in Unicode::UCD",
+        'Simple_Titlecase_Mapping' => "$simple.  Can access this through charinfo(), charprop(), or prop_invmap() in Unicode::UCD",
+        'Simple_Uppercase_Mapping' => "$simple.  Can access this through charinfo(), charprop(), or prop_invmap() in Unicode::UCD",
 
-        FC_NFKC_Closure => 'Supplanted in usage by NFKC_Casefold; otherwise not useful',
+        FC_NFKC_Closure => 'Deprecated by Unicode, and supplanted in usage by NFKC_Casefold; otherwise not useful',
     );
 
     foreach my $property (
@@ -1466,6 +1466,8 @@ my $has_hangul_syllables = 0;
 my $needing_code_points_ending_in_code_point = 0;
 
 my @backslash_X_tests;     # List of tests read in for testing \X
+my @SB_tests;              # List of tests read in for testing \b{sb}
+my @WB_tests;              # List of tests read in for testing \b{wb}
 my @unhandled_properties;  # Will contain a list of properties found in
                            # the input that we didn't process.
 my @match_properties;      # Properties that have match tables, to be
@@ -2512,17 +2514,27 @@ END
             }
             $handle{$addr} = $file_handle; # Cache the open file handle
 
-            if ($v_version ge v3.2.0
-                && lc($file) ne 'unicodedata.txt'
-
-                    # Unihan files used another format until v7
-                && ($v_version ge v7.0.0 || $file !~ /^Unihan/i))
-            {
-                $_ = <$file_handle>;
-                if ($_ !~ / - $string_version \. /x) {
-                    chomp;
-                    $_ =~ s/^#\s*//;
-                    die Carp::my_carp("File '$file' is version '$_'.  It should be version $string_version");
+            if ($v_version ge v3.2.0 && lc($file) ne 'unicodedata.txt') {
+                if ($file !~ /^Unihan/i) {
+                    $_ = <$file_handle>;
+                    if ($_ !~ / - $string_version \. /x) {
+                        chomp;
+                        $_ =~ s/^#\s*//;
+                        die Carp::my_carp("File '$file' is version '$_'.  It should be version $string_version");
+                    }
+                }
+                else {
+                    while (<$file_handle>) {
+                        if ($_ !~ /^#/) {
+                            Carp::my_carp_bug("Could not find the expected version info in file '$file'");
+                            last;
+                        }
+                        chomp;
+                        $_ =~ s/^#\s*//;
+                        next if $_ !~ / version: /x;
+                        last if $_ =~ /$string_version/;
+                        die Carp::my_carp("File '$file' is '$_'.  It should be version $string_version");
+                    }
                 }
             }
         }
@@ -6717,7 +6729,8 @@ sub trace { return main::trace(@_); }
 # but its format and even its name or existence are subject to change without
 # notice in a future Perl version.  Don't use it directly.  Instead, its
 # contents are now retrievable through a stable API in the Unicode::UCD
-# module: Unicode::UCD::prop_invmap('$property_name').
+# module: Unicode::UCD::prop_invmap('$property_name') (Values for individual
+# code points can be retrieved via Unicode::UCD::charprop());
 END
         }
         return $return;
@@ -6844,7 +6857,7 @@ END
         }
         $comment .= "\nwhere 'cp' is $cp.";
         if ($ucd_accessible_name) {
-            $comment .= "  Note that $these_mappings $are accessible via the function prop_invmap('$full_name') in Unicode::UCD";
+            $comment .= "  Note that $these_mappings $are accessible via the functions prop_invmap('$full_name') or charprop() in Unicode::UCD";
         }
 
         # And append any commentary already set from the actual property.
@@ -9263,7 +9276,7 @@ sub utf8_heavy_name ($$) {
 {   # Closure
 
     my $indent_increment = " " x (($debugging_build) ? 2 : 0);
-    my %already_output;
+    %main::already_output = ();
 
     $main::simple_dumper_nesting = 0;
 
@@ -9283,7 +9296,7 @@ sub utf8_heavy_name ($$) {
         # nesting level is localized, so that as the call stack pops, it goes
         # back to the prior value.
         local $main::simple_dumper_nesting = $main::simple_dumper_nesting;
-        undef %already_output if $main::simple_dumper_nesting == 0;
+        local %main::already_output = %main::already_output;
         $main::simple_dumper_nesting++;
         #print STDERR __LINE__, ": $main::simple_dumper_nesting: $indent$item\n";
 
@@ -9314,10 +9327,10 @@ sub utf8_heavy_name ($$) {
 
             # Keep track of cycles in the input, and refuse to infinitely loop
             my $addr = do { no overloading; pack 'J', $item; };
-            if (defined $already_output{$addr}) {
+            if (defined $main::already_output{$addr}) {
                 return "${indent}ALREADY OUTPUT: $item\n";
             }
-            $already_output{$addr} = $item;
+            $main::already_output{$addr} = $item;
 
             if (ref $item eq 'ARRAY') {
                 my $using_brackets;
@@ -11710,6 +11723,30 @@ sub process_GCB_test {
     return;
 }
 
+sub process_SB_test {
+
+    my $file = shift;
+    Carp::carp_extra_args(\@_) if main::DEBUG && @_;
+
+    while ($file->next_line) {
+        push @SB_tests, $_;
+    }
+
+    return;
+}
+
+sub process_WB_test {
+
+    my $file = shift;
+    Carp::carp_extra_args(\@_) if main::DEBUG && @_;
+
+    while ($file->next_line) {
+        push @WB_tests, $_;
+    }
+
+    return;
+}
+
 sub process_NamedSequences {
     # NamedSequences.txt entries are just added to an array.  Because these
     # don't look like the other tables, they have their own handler.
@@ -13408,7 +13445,7 @@ sub compile_perl() {
     # have Uppercase and Lowercase defined, so use the general category
     # instead for them, modified by hard-coding in the code points each is
     # missing.
-    my $Lower = $perl->add_match_table('Lower');
+    my $Lower = $perl->add_match_table('XPosixLower');
     my $Unicode_Lower = property_ref('Lowercase');
     if (defined $Unicode_Lower && ! $Unicode_Lower->is_empty) {
         $Lower->set_equivalent_to($Unicode_Lower->table('Y'), Related => 1);
@@ -13446,13 +13483,12 @@ sub compile_perl() {
             $Lower += $code_point;
         }
     }
-    $Lower->add_alias('XPosixLower');
     my $Posix_Lower = $perl->add_match_table("PosixLower",
                             Description => "[a-z]",
                             Initialize => $Lower & $ASCII,
                             );
 
-    my $Upper = $perl->add_match_table('Upper');
+    my $Upper = $perl->add_match_table("XPosixUpper");
     my $Unicode_Upper = property_ref('Uppercase');
     if (defined $Unicode_Upper && ! $Unicode_Upper->is_empty) {
         $Upper->set_equivalent_to($Unicode_Upper->table('Y'), Related => 1);
@@ -13465,7 +13501,6 @@ sub compile_perl() {
         $Upper->add_range(0x2160, 0x216F);  # Uppercase Roman numerals
         $Upper->add_range(0x24B6, 0x24CF);  # Circled Latin upper case letters
     }
-    $Upper->add_alias('XPosixUpper');
     my $Posix_Upper = $perl->add_match_table("PosixUpper",
                             Description => "[A-Z]",
                             Initialize => $Upper & $ASCII,
@@ -13587,7 +13622,7 @@ sub compile_perl() {
     # one whose name generally begins with Posix that is posix-compliant, and
     # one that matches Unicode characters beyond the Posix, ASCII range
 
-    my $Alpha = $perl->add_match_table('Alpha');
+    my $Alpha = $perl->add_match_table('XPosixAlpha');
 
     # Alphabetic was not present in early releases
     my $Alphabetic = property_ref('Alphabetic');
@@ -13674,7 +13709,6 @@ sub compile_perl() {
         $Alpha->add_description('Alphabetic');
         $Alpha->add_alias('Alphabetic');
     }
-    $Alpha->add_alias('XPosixAlpha');
     my $Posix_Alpha = $perl->add_match_table("PosixAlpha",
                             Description => "[A-Za-z]",
                             Initialize => $Alpha & $ASCII,
@@ -13682,22 +13716,20 @@ sub compile_perl() {
     $Posix_Upper->set_caseless_equivalent($Posix_Alpha);
     $Posix_Lower->set_caseless_equivalent($Posix_Alpha);
 
-    my $Alnum = $perl->add_match_table('Alnum',
+    my $Alnum = $perl->add_match_table('Alnum', Full_Name => 'XPosixAlnum',
                         Description => 'Alphabetic and (decimal) Numeric',
                         Initialize => $Alpha + $gc->table('Decimal_Number'),
                         );
-    $Alnum->add_alias('XPosixAlnum');
     $perl->add_match_table("PosixAlnum",
                             Description => "[A-Za-z0-9]",
                             Initialize => $Alnum & $ASCII,
                             );
 
-    my $Word = $perl->add_match_table('Word',
+    my $Word = $perl->add_match_table('Word', Full_Name => 'XPosixWord',
                                 Description => '\w, including beyond ASCII;'
                                             . ' = \p{Alnum} + \pM + \p{Pc}',
                                 Initialize => $Alnum + $gc->table('Mark'),
                                 );
-    $Word->add_alias('XPosixWord');
     my $Pc = $gc->table('Connector_Punctuation'); # 'Pc' Not in release 1
     if (defined $Pc) {
         $Word += $Pc;
@@ -13714,13 +13746,13 @@ sub compile_perl() {
     }
 
     # This is a Perl extension, so the name doesn't begin with Posix.
-    my $PerlWord = $perl->add_match_table('PerlWord',
+    my $PerlWord = $perl->add_match_table('PosixWord',
                     Description => '\w, restricted to ASCII = [A-Za-z0-9_]',
                     Initialize => $Word & $ASCII,
                     );
-    $PerlWord->add_alias('PosixWord');
+    $PerlWord->add_alias('PerlWord');
 
-    my $Blank = $perl->add_match_table('Blank',
+    my $Blank = $perl->add_match_table('Blank', Full_Name => 'XPosixBlank',
                                 Description => '\h, Horizontal white space',
 
                                 # 200B is Zero Width Space which is for line
@@ -13731,7 +13763,6 @@ sub compile_perl() {
                                             -   0x200B, # ZWSP
                                 );
     $Blank->add_alias('HorizSpace');        # Another name for it.
-    $Blank->add_alias('XPosixBlank');
     $perl->add_match_table("PosixBlank",
                             Description => "\\t and ' '",
                             Initialize => $Blank & $ASCII,
@@ -13750,34 +13781,22 @@ sub compile_perl() {
                     );
     # No Posix equivalent for vertical space
 
-    my $Space = $perl->add_match_table('Space',
+    my $Space = $perl->add_match_table('XPosixSpace',
                 Description => '\s including beyond ASCII and vertical tab',
                 Initialize => $Blank + $VertSpace,
     );
-    $Space->add_alias('XPosixSpace');
-    my $posix_space = $perl->add_match_table("PosixSpace",
+    $Space->add_alias('XPerlSpace');    # Pre-existing synonyms
+    $Space->add_alias('SpacePerl');
+
+    my $Posix_space = $perl->add_match_table("PosixSpace",
                             Description => "\\t, \\n, \\cK, \\f, \\r, and ' '.  (\\cK is vertical tab)",
                             Initialize => $Space & $ASCII,
                             );
+    $Posix_space->add_alias('PerlSpace'); # A pre-existing synonym
 
-    # Perl's traditional space doesn't include Vertical Tab prior to v5.18
-    my $XPerlSpace = $perl->add_match_table('XPerlSpace',
-                                  Description => '\s, including beyond ASCII',
-                                  Initialize => $Space,
-                                  #Initialize => $Space
-                                  # - utf8::unicode_to_native(0x0B]
-                                );
-    $XPerlSpace->add_alias('SpacePerl');    # A pre-existing synonym
-    my $PerlSpace = $perl->add_match_table('PerlSpace',
-                        Description => '\s, restricted to ASCII = [ \f\n\r\t] plus vertical tab',
-                        Initialize => $XPerlSpace & $ASCII,
-                            );
-
-
-    my $Cntrl = $perl->add_match_table('Cntrl',
+    my $Cntrl = $perl->add_match_table('Cntrl', Full_Name => 'XPosixCntrl',
                                         Description => 'Control characters');
     $Cntrl->set_equivalent_to($gc->table('Cc'), Related => 1);
-    $Cntrl->add_alias('XPosixCntrl');
     $perl->add_match_table("PosixCntrl",
                             Description => "ASCII control characters: NUL, SOH, STX, ETX, EOT, ENQ, ACK, BEL, BS, HT, LF, VT, FF, CR, SO, SI, DLE, DC1, DC2, DC3, DC4, NAK, SYN, ETB, CAN, EOM, SUB, ESC, FS, GS, RS, US, and DEL",
                             Initialize => $Cntrl & $ASCII,
@@ -13790,22 +13809,20 @@ sub compile_perl() {
     $controls += $gc->table('Surrogate') if defined $gc->table('Surrogate');
 
     # Graph is  ~space &  ~(Cc|Cs|Cn) = ~(space + $controls)
-    my $Graph = $perl->add_match_table('Graph',
+    my $Graph = $perl->add_match_table('Graph', Full_Name => 'XPosixGraph',
                         Description => 'Characters that are graphical',
                         Initialize => ~ ($Space + $controls),
                         );
-    $Graph->add_alias('XPosixGraph');
     $perl->add_match_table("PosixGraph",
                             Description =>
                                 '[-!"#$%&\'()*+,./:;<=>?@[\\\]^_`{|}~0-9A-Za-z]',
                             Initialize => $Graph & $ASCII,
                             );
 
-    $print = $perl->add_match_table('Print',
+    $print = $perl->add_match_table('Print', Full_Name => 'XPosixPrint',
                         Description => 'Characters that are graphical plus space characters (but no controls)',
                         Initialize => $Blank + $Graph - $gc->table('Control'),
                         );
-    $print->add_alias('XPosixPrint');
     $perl->add_match_table("PosixPrint",
                             Description =>
                               '[- 0-9A-Za-z!"#$%&\'()*+,./:;<=>?@[\\\]^_`{|}~]',
@@ -13827,18 +13844,16 @@ sub compile_perl() {
         Initialize => $ASCII & $XPosixPunct,
         );
 
-    my $Digit = $perl->add_match_table('Digit',
+    my $Digit = $perl->add_match_table('Digit', Full_Name => 'XPosixDigit',
                             Description => '[0-9] + all other decimal digits');
     $Digit->set_equivalent_to($gc->table('Decimal_Number'), Related => 1);
-    $Digit->add_alias('XPosixDigit');
     my $PosixDigit = $perl->add_match_table("PosixDigit",
                                             Description => '[0-9]',
                                             Initialize => $Digit & $ASCII,
                                             );
 
     # Hex_Digit was not present in first release
-    my $Xdigit = $perl->add_match_table('XDigit');
-    $Xdigit->add_alias('XPosixXDigit');
+    my $Xdigit = $perl->add_match_table('XDigit', Full_Name => 'XPosixXDigit');
     my $Hex = property_ref('Hex_Digit');
     if (defined $Hex && ! $Hex->is_empty) {
         $Xdigit->set_equivalent_to($Hex->table('Y'), Related => 1);
@@ -14130,107 +14145,6 @@ sub compile_perl() {
                                     + utf8::unicode_to_native(0xA0) # NBSP
                         );
 
-    # These two tables are for matching \X, which is based on the 'extended'
-    # grapheme cluster, which came in 5.1; create empty ones if not already
-    # present.  The straight 'grapheme cluster' (non-extended) is used prior
-    # to 5.1, and differs from the extended (see
-    # http://www.unicode.org/reports/tr29/) only by these two tables, so we
-    # get the older definition automatically when they are empty.
-    my $gcb = property_ref('Grapheme_Cluster_Break');
-    my $perl_prepend = $perl->add_match_table('_X_GCB_Prepend',
-                                        Perl_Extension => 1,
-                                        Fate => $INTERNAL_ONLY);
-    if (defined (my $gcb_prepend = $gcb->table('Prepend'))) {
-        $perl_prepend->set_equivalent_to($gcb_prepend, Related => 1);
-    }
-    else {
-        push @tables_that_may_be_empty, $perl_prepend->complete_name;
-    }
-
-    # All the tables with _X_ in their names are used in defining \X handling,
-    # and are based on the Unicode GCB property.  Basically, \X matches:
-    #   CR LF
-    #   | Prepend* Begin Extend*
-    #   | .
-    # Begin is:           ( Special_Begin | ! Control )
-    # Begin is also:      ( Regular_Begin | Special_Begin )
-    #   where Regular_Begin is defined as ( ! Control - Special_Begin )
-    # Special_Begin is:   ( Regional-Indicator+ | Hangul-syllable )
-    # Extend is:          ( Grapheme_Extend | Spacing_Mark )
-    # Control is:         [ GCB_Control | CR | LF ]
-    # Hangul-syllable is: ( T+ | ( L* ( L | ( LVT | ( V | LV ) V* ) T* ) ))
-
-    foreach my $gcb_name (qw{ L V T LV LVT }) {
-
-        # The perl internal extension's name is the gcb table name prepended
-        # with an '_X_'
-        my $perl_table = $perl->add_match_table('_X_GCB_' . $gcb_name,
-                                        Perl_Extension => 1,
-                                        Fate => $INTERNAL_ONLY,
-                                        Initialize => $gcb->table($gcb_name),
-                                        );
-        # Version 1 had mostly different Hangul syllables that were removed
-        # from later versions, so some of the tables may not apply.
-        if ($v_version lt v2.0) {
-            push @tables_that_may_be_empty, $perl_table->complete_name;
-        }
-    }
-
-    # More GCB.  Populate a combined hangul syllables table
-    my $lv_lvt_v = $perl->add_match_table('_X_LV_LVT_V',
-                                          Perl_Extension => 1,
-                                          Fate => $INTERNAL_ONLY);
-    $lv_lvt_v += $gcb->table('LV') + $gcb->table('LVT') + $gcb->table('V');
-    $lv_lvt_v->add_comment('For use in \X; matches: gcb=LV | gcb=LVT | gcb=V');
-
-    my $ri = $perl->add_match_table('_X_RI', Perl_Extension => 1,
-                                    Fate => $INTERNAL_ONLY);
-    if ($v_version ge v6.2) {
-        $ri += $gcb->table('RI');
-    }
-    else {
-        push @tables_that_may_be_empty, $ri->full_name;
-    }
-
-    my $specials_begin = $perl->add_match_table('_X_Special_Begin_Start',
-                                       Perl_Extension => 1,
-                                       Fate => $INTERNAL_ONLY,
-                                       Initialize => $lv_lvt_v
-                                                   + $gcb->table('L')
-                                                   + $gcb->table('T')
-                                                   + $ri
-                                      );
-    $specials_begin->add_comment(join_lines( <<END
-For use in \\X; matches first (perhaps only) character of potential
-multi-character sequences that can begin an extended grapheme cluster.  They
-need special handling because of their complicated nature.
-END
-    ));
-    my $regular_begin = $perl->add_match_table('_X_Regular_Begin',
-                                       Perl_Extension => 1,
-                                       Fate => $INTERNAL_ONLY,
-                                       Initialize => ~ $gcb->table('Control')
-                                                   - $specials_begin
-                                                   - $gcb->table('CR')
-                                                   - $gcb->table('LF')
-                                      );
-    $regular_begin->add_comment(join_lines( <<END
-For use in \\X; matches first character of anything that can begin an extended
-grapheme cluster, except those that require special handling.
-END
-    ));
-
-    my $extend = $perl->add_match_table('_X_Extend', Perl_Extension => 1,
-                                        Fate => $INTERNAL_ONLY,
-                                        Initialize => $gcb->table('Extend')
-                                       );
-    if (defined (my $sm = $gcb->table('SpacingMark'))) {
-        $extend += $sm;
-    }
-    $extend->add_comment('For use in \X; matches: Extend | SpacingMark');
-
-    # End of GCB \X processing
-
     my @composition = ('Name', 'Unicode_1_Name', 'Name_Alias');
 
     if (@named_sequences) {
@@ -15414,7 +15328,7 @@ sub make_re_pod_entries($) {
                     }
                 }
 
-                # Ouput both short and single in the same parenthesized
+                # Output both short and single in the same parenthesized
                 # expression, but with only one of 'Single', 'Short' if there
                 # are both items.
                 if ($short_name || $single_form || $table->conflicting) {
@@ -16187,9 +16101,14 @@ $zero_matches
 
 =head1 Properties accessible through Unicode::UCD
 
-All the Unicode character properties mentioned above (except for those marked
-as for internal use by Perl) are also accessible by
-L<Unicode::UCD/prop_invlist()>.
+The value of any Unicode (not including Perl extensions) character
+property mentioned above for any single code point is available through
+L<Unicode::UCD/charprop()>.  L<Unicode::UCD/charprops_all()> returns the
+values of all the Unicode properties for a given code point.
+
+Besides these, all the Unicode character properties mentioned above
+(except for those marked as for internal use by Perl) are also
+accessible by L<Unicode::UCD/prop_invlist()>.
 
 Due to their nature, not all Unicode character properties are suitable for
 regular expression matches, nor C<prop_invlist()>.  The remaining
@@ -17279,8 +17198,6 @@ sub write_all_tables() {
                     # Similarly, we create for Unicode::UCD a list of
                     # property-value aliases.
 
-                    my $property_full_name = $property->full_name;
-
                     # Look at each table in the property...
                     foreach my $table ($property->tables) {
                         my @values_list;
@@ -17319,7 +17236,7 @@ sub write_all_tables() {
                         }
 
                         # To save memory, unlike the similar list for property
-                        # aliases above, only the standard forms hve the list.
+                        # aliases above, only the standard forms have the list.
                         # This forces an extra step of converting from input
                         # name to standard name, but the savings are
                         # considerable.  (There is only marginal savings if we
@@ -17890,9 +17807,12 @@ sub make_property_test_script() {
            [$HEADER,
             <DATA>,
             @output,
-            (map {"Test_X('$_');\n"} @backslash_X_tests),
+            (map {"Test_GCB('$_');\n"} @backslash_X_tests),
+            (map {"Test_SB('$_');\n"} @SB_tests),
+            (map {"Test_WB('$_');\n"} @WB_tests),
             "Finished();\n"
            ]);
+
     return;
 }
 
@@ -18202,10 +18122,10 @@ my @input_file_objects = (
                     Skip => 'Validation Tests',
                     ),
     Input_file->new("$AUXILIARY/SBTest.txt", v4.1.0,
-                    Skip => 'Validation Tests',
+                    Handler => \&process_SB_test,
                     ),
     Input_file->new("$AUXILIARY/WBTest.txt", v4.1.0,
-                    Skip => 'Validation Tests',
+                    Handler => \&process_WB_test,
                     ),
     Input_file->new("$AUXILIARY/SentenceBreakProperty.txt", v4.1.0,
                     Property => 'Sentence_Break',
@@ -18692,16 +18612,22 @@ sub Error($) {
     return;
 }
 
-# GCBTest.txt character that separates grapheme clusters
+# Break test files (e.g. GCBTest.txt) character that break allowed here
 my $breakable_utf8 = my $breakable = chr(utf8::unicode_to_native(0xF7));
 utf8::upgrade($breakable_utf8);
 
-# GCBTest.txt character that indicates that the adjoining code points are part
-# of the same grapheme cluster
+# Break test files (e.g. GCBTest.txt) character that indicates can't break
+# here
 my $nobreak_utf8 = my $nobreak = chr(utf8::unicode_to_native(0xD7));
 utf8::upgrade($nobreak_utf8);
 
-sub Test_X($) {
+use Config;
+my $utf8_locale;
+chdir 't' if -d 't';
+eval { require "./loc_tools.pl" };
+$utf8_locale = &find_utf8_ctype_locale if defined &find_utf8_ctype_locale;
+
+sub _test_break($$) {
     # Test qr/\X/ matches.  The input is a line from auxiliary/GCBTest.txt
     # Each such line is a sequence of code points given by their hex numbers,
     # separated by the two characters defined just before this subroutine that
@@ -18714,8 +18640,9 @@ sub Test_X($) {
     # Each \X should match the next cluster; and that is what is checked.
 
     my $template = shift;
+    my $break_type = shift;
 
-    my $line   = (caller)[2];
+    my $line   = (caller 1)[2];   # Line number
 
     # The line contains characters above the ASCII range, but in Latin1.  It
     # may or may not be in utf8, and if it is, it may or may not know it.  So,
@@ -18733,40 +18660,36 @@ sub Test_X($) {
         $template =~ s/$breakable_utf8/$breakable/g;
     }
 
-    # Get rid of the leading and trailing breakables
-    $template =~ s/^ \s* $breakable \s* //x;
-    $template =~ s/ \s* $breakable \s* $ //x;
+    # The input is just the break/no-break symbols and sequences of Unicode
+    # code points as hex digits separated by spaces for legibility. e.g.:
+    # ÷ 0020 × 0308 ÷ 0020 ÷
+    # Convert to native \x format
+    $template =~ s/ \s* ( [[:xdigit:]]+ ) \s* /sprintf("\\x{%02X}", utf8::unicode_to_native(hex $1))/gex;
+    $template =~ s/ \s* //gx;   # Probably the line above removed all spaces;
+                                # but be sure
 
-    # And no-breaks become just a space.
-    $template =~ s/ \s* $nobreak \s* / /xg;
+    # Make a copy of the input with the symbols replaced by \b{} and \B{} as
+    # appropriate
+    my $break_pattern = $template =~ s/ $breakable /\\b{$break_type}/grx;
+    $break_pattern =~ s/ $nobreak /\\B{$break_type}/gx;
 
-    # Split the input into segments that are breakable between them.
-    my @segments = split /\s*$breakable\s*/, $template;
+    my $display_string = $template =~ s/[$breakable$nobreak]//gr;
+    my $string = eval "\"$display_string\"";
 
-    my $string = "";
-    my $display_string = "";
-    my @should_match;
-    my @should_display;
+    # The remaining massaging of the input is for the \X tests.  Get rid of
+    # the leading and trailing breakables
+    $template =~ s/^ \s* $breakable \s* //x;
+    $template =~ s/ \s* $breakable \s* $ //x;
 
-    # Convert the code point sequence in each segment into a Perl string of
-    # characters
-    foreach my $segment (@segments) {
-        my @code_points = split /\s+/, $segment;
-        my $this_string = "";
-        my $this_display = "";
-        foreach my $code_point (@code_points) {
-            $this_string .= chr utf8::unicode_to_native(hex $code_point);
-            $this_display .= "\\x{$code_point}";
-        }
+    # Delete no-breaks
+    $template =~ s/ \s* $nobreak \s* //xg;
 
-        # The next cluster should match the string in this segment.
-        push @should_match, $this_string;
-        push @should_display, $this_display;
-        $string .= $this_string;
-        $display_string .= $this_display;
-    }
+    # Split the input into segments that are breakable between them.
+    my @should_display = split /\s*$breakable\s*/, $template;
+    my @should_match = map { eval "\"$_\"" } @should_display;
 
     # If a string can be represented in both non-ut8 and utf8, test both cases
+    my $display_upgrade = "";
     UPGRADE:
     for my $to_upgrade (0 .. 1) {
 
@@ -18776,8 +18699,54 @@ sub Test_X($) {
             next UPGRADE if utf8::is_utf8($string);
 
             utf8::upgrade($string);
+            $display_upgrade = " (utf8-upgraded)";
+        }
+
+        # The /l modifier has C after it to indicate the locale to try
+        my @modifiers = qw(a aa d lC u i);
+        push @modifiers, "l$utf8_locale" if defined $utf8_locale;
+
+        # Test for each of the regex modifiers.
+        for my $modifier (@modifiers) {
+            my $display_locale = "";
+
+            # For /l, set the locale to what it says to.
+            if ($modifier =~ / ^ l (.*) /x) {
+                my $locale = $1;
+                $display_locale = "(locale = $locale)";
+                use Config;
+                if (defined $Config{d_setlocale}) {
+                    eval { require POSIX; import POSIX 'locale_h'; };
+                    if (defined &POSIX::LC_CTYPE) {
+                        POSIX::setlocale(&POSIX::LC_CTYPE, $locale);
+                    }
+                }
+                $modifier = 'l';
+            }
+
+            no warnings qw(locale regexp surrogate);
+            my $pattern = "(?$modifier:$break_pattern)";
+
+            # Actually do the test
+            my $matched = $string =~ qr/$pattern/;
+            print "not " unless $matched;
+
+            # Fancy display of test results
+            $matched = ($matched) ? "matched" : "failed to match";
+            print "ok ", ++$Tests, " - \"$display_string\" $matched /$pattern/$display_upgrade; line $line $display_locale\n";
+
+            # Repeat with the first \B{} in the pattern.  This makes sure the
+            # code in regexec.c:find_byclass() for \B gets executed
+            if ($pattern =~ / ( .*? : ) .* ( \\B\{ .* ) /x) {
+                my $B_pattern = "$1$2";
+                $matched = $string =~ qr/$B_pattern/;
+                print "not " unless $matched;
+                print "ok ", ++$Tests, " - \"$display_string\" $matched /$B_pattern/$display_upgrade; line $line $display_locale\n";
+            }
         }
 
+        next if $break_type ne 'gcb';
+
         # Finally, do the \X match.
         my @matches = $string =~ /(\X)/g;
 
@@ -18796,7 +18765,7 @@ sub Test_X($) {
                 print " correctly matched $should_display[$i]; line $line\n";
             } else {
                 $matches[$i] = join("", map { sprintf "\\x{%04X}", $_ }
-                                                    unpack("U*", $matches[$i]));
+                                                    split "", $matches[$i]);
                 print "not ok $Tests - In \"$display_string\" =~ /(\\X)/g, \\X #",
                     $i + 1,
                     " should have matched $should_display[$i]",
@@ -18818,13 +18787,25 @@ sub Test_X($) {
     return;
 }
 
+sub Test_GCB($) {
+    _test_break(shift, 'gcb');
+}
+
+sub Test_SB($) {
+    _test_break(shift, 'sb');
+}
+
+sub Test_WB($) {
+    _test_break(shift, 'wb');
+}
+
 sub Finished() {
     print "1..$Tests\n";
     exit($Fails ? -1 : 0);
 }
 
 Error('\p{Script=InGreek}');    # Bug #69018
-Test_X("1100 $nobreak 1161");  # Bug #70940
+Test_GCB("1100 $nobreak 1161");  # Bug #70940
 Expect(0, 0x2028, '\p{Print}', ""); # Bug # 71722
 Expect(0, 0x2029, '\p{Print}', ""); # Bug # 71722
 Expect(1, 0xFF10, '\p{XDigit}', ""); # Bug # 71726
index 2020568..cad00ea 100644 (file)
@@ -5,7 +5,7 @@
 
 package warnings;
 
-our $VERSION = '1.30';
+our $VERSION = '1.31';
 
 # Verify that we're called correctly so that warnings will work.
 # see also strict.pm.
@@ -15,248 +15,236 @@ unless ( __FILE__ =~ /(^|[\/\\])\Q${\__PACKAGE__}\E\.pmc?$/ ) {
 }
 
 our %Offsets = (
-
     # Warnings Categories added in Perl 5.008
-
-    'all'              => 0,
-    'closure'          => 2,
-    'deprecated'       => 4,
-    'exiting'          => 6,
-    'glob'             => 8,
-    'io'               => 10,
-    'closed'           => 12,
-    'exec'             => 14,
-    'layer'            => 16,
-    'newline'          => 18,
-    'pipe'             => 20,
-    'unopened'         => 22,
-    'misc'             => 24,
-    'numeric'          => 26,
-    'once'             => 28,
-    'overflow'         => 30,
-    'pack'             => 32,
-    'portable'         => 34,
-    'recursion'                => 36,
-    'redefine'         => 38,
-    'regexp'           => 40,
-    'severe'           => 42,
-    'debugging'                => 44,
-    'inplace'          => 46,
-    'internal'         => 48,
-    'malloc'           => 50,
-    'signal'           => 52,
-    'substr'           => 54,
-    'syntax'           => 56,
-    'ambiguous'                => 58,
-    'bareword'         => 60,
-    'digit'            => 62,
-    'parenthesis'      => 64,
-    'precedence'       => 66,
-    'printf'           => 68,
-    'prototype'                => 70,
-    'qw'               => 72,
-    'reserved'         => 74,
-    'semicolon'                => 76,
-    'taint'            => 78,
-    'threads'          => 80,
-    'uninitialized'    => 82,
-    'unpack'           => 84,
-    'untie'            => 86,
-    'utf8'             => 88,
-    'void'             => 90,
+    'all'                              => 0,
+    'closure'                          => 2,
+    'deprecated'                       => 4,
+    'exiting'                          => 6,
+    'glob'                             => 8,
+    'io'                               => 10,
+    'closed'                           => 12,
+    'exec'                             => 14,
+    'layer'                            => 16,
+    'newline'                          => 18,
+    'pipe'                             => 20,
+    'unopened'                         => 22,
+    'misc'                             => 24,
+    'numeric'                          => 26,
+    'once'                             => 28,
+    'overflow'                         => 30,
+    'pack'                             => 32,
+    'portable'                         => 34,
+    'recursion'                                => 36,
+    'redefine'                         => 38,
+    'regexp'                           => 40,
+    'severe'                           => 42,
+    'debugging'                                => 44,
+    'inplace'                          => 46,
+    'internal'                         => 48,
+    'malloc'                           => 50,
+    'signal'                           => 52,
+    'substr'                           => 54,
+    'syntax'                           => 56,
+    'ambiguous'                                => 58,
+    'bareword'                         => 60,
+    'digit'                            => 62,
+    'parenthesis'                      => 64,
+    'precedence'                       => 66,
+    'printf'                           => 68,
+    'prototype'                                => 70,
+    'qw'                               => 72,
+    'reserved'                         => 74,
+    'semicolon'                                => 76,
+    'taint'                            => 78,
+    'threads'                          => 80,
+    'uninitialized'                    => 82,
+    'unpack'                           => 84,
+    'untie'                            => 86,
+    'utf8'                             => 88,
+    'void'                             => 90,
 
     # Warnings Categories added in Perl 5.011
-
-    'imprecision'      => 92,
-    'illegalproto'     => 94,
+    'imprecision'                      => 92,
+    'illegalproto'                     => 94,
 
     # Warnings Categories added in Perl 5.013
-
-    'non_unicode'      => 96,
-    'nonchar'          => 98,
-    'surrogate'                => 100,
+    'non_unicode'                      => 96,
+    'nonchar'                          => 98,
+    'surrogate'                                => 100,
 
     # Warnings Categories added in Perl 5.017
-
-    'experimental'     => 102,
-    'experimental::lexical_subs'=> 104,
-    'experimental::lexical_topic'=> 106,
-    'experimental::regex_sets'=> 108,
-    'experimental::smartmatch'=> 110,
+    'experimental'                     => 102,
+    'experimental::lexical_subs'       => 104,
+    'experimental::lexical_topic'      => 106,
+    'experimental::regex_sets'         => 108,
+    'experimental::smartmatch'         => 110,
 
     # Warnings Categories added in Perl 5.019
-
-    'experimental::autoderef'=> 112,
-    'experimental::postderef'=> 114,
-    'experimental::signatures'=> 116,
-    'syscalls'         => 118,
+    'experimental::autoderef'          => 112,
+    'experimental::postderef'          => 114,
+    'experimental::signatures'         => 116,
+    'syscalls'                         => 118,
 
     # Warnings Categories added in Perl 5.021
-
-    'everything'       => 120,
-    'experimental::const_attr'=> 122,
-    'experimental::re_strict'=> 124,
-    'experimental::refaliasing'=> 126,
-    'experimental::win32_perlio'=> 128,
-    'locale'           => 130,
-    'missing'          => 132,
-    'redundant'                => 134,
-    'extra'            => 136,
-    'void_unusual'     => 138,
-  );
+    'experimental::bitwise'            => 120,
+    'experimental::const_attr'         => 122,
+    'experimental::re_strict'          => 124,
+    'experimental::refaliasing'                => 126,
+    'experimental::win32_perlio'       => 128,
+    'locale'                           => 130,
+    'missing'                          => 132,
+    'redundant'                                => 134,
+);
 
 our %Bits = (
-    'all'              => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x54\x55\x00", # [0..59,61..67]
-    'ambiguous'                => "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [29]
-    'bareword'         => "\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [30]
-    'closed'           => "\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
-    'closure'          => "\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
-    'debugging'                => "\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22]
-    'deprecated'       => "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
-    'digit'            => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31]
-    'everything'       => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x05", # [0..69]
-    'exec'             => "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
-    'exiting'          => "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
-    'experimental'     => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x55\x15\x54\x01\x00", # [51..58,61..64]
-    'experimental::autoderef'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [56]
-    'experimental::const_attr'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [61]
-    'experimental::lexical_subs'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00", # [52]
-    'experimental::lexical_topic'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [53]
-    'experimental::postderef'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [57]
-    'experimental::re_strict'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [62]
-    'experimental::refaliasing'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [63]
-    'experimental::regex_sets'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [54]
-    'experimental::signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [58]
-    'experimental::smartmatch'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00", # [55]
-    'experimental::win32_perlio'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [64]
-    'extra'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05", # [68,69]
-    'glob'             => "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
-    'illegalproto'     => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [47]
-    'imprecision'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [46]
-    'inplace'          => "\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23]
-    'internal'         => "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [24]
-    'io'               => "\x00\x54\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [5..11,59]
-    'layer'            => "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
-    'locale'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [65]
-    'malloc'           => "\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [25]
-    'misc'             => "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
-    'missing'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [66]
-    'newline'          => "\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
-    'non_unicode'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00", # [48]
-    'nonchar'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [49]
-    'numeric'          => "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
-    'once'             => "\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
-    'overflow'         => "\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
-    'pack'             => "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16]
-    'parenthesis'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [32]
-    'pipe'             => "\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
-    'portable'         => "\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17]
-    'precedence'       => "\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [33]
-    'printf'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [34]
-    'prototype'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [35]
-    'qw'               => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00", # [36]
-    'recursion'                => "\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
-    'redefine'         => "\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
-    'redundant'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [67]
-    'regexp'           => "\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20]
-    'reserved'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00", # [37]
-    'semicolon'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00", # [38]
-    'severe'           => "\x00\x00\x00\x00\x00\x54\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25]
-    'signal'           => "\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [26]
-    'substr'           => "\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [27]
-    'surrogate'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00", # [50]
-    'syntax'           => "\x00\x00\x00\x00\x00\x00\x00\x55\x55\x15\x00\x40\x00\x00\x00\x00\x00\x00", # [28..38,47]
-    'syscalls'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [59]
-    'taint'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [39]
-    'threads'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00", # [40]
-    'uninitialized'    => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [41]
-    'unopened'         => "\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
-    'unpack'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [42]
-    'untie'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00", # [43]
-    'utf8'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x15\x00\x00\x00\x00\x00", # [44,48..50]
-    'void'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00", # [45]
-    'void_unusual'     => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [69]
-  );
+    'all'                              => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55", # [0..67]
+    'ambiguous'                                => "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [29]
+    'bareword'                         => "\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [30]
+    'closed'                           => "\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
+    'closure'                          => "\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
+    'debugging'                                => "\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22]
+    'deprecated'                       => "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
+    'digit'                            => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31]
+    'exec'                             => "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
+    'exiting'                          => "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
+    'experimental'                     => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x55\x15\x55\x01", # [51..58,60..64]
+    'experimental::autoderef'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [56]
+    'experimental::bitwise'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [60]
+    'experimental::const_attr'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [61]
+    'experimental::lexical_subs'       => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [52]
+    'experimental::lexical_topic'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [53]
+    'experimental::postderef'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [57]
+    'experimental::re_strict'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [62]
+    'experimental::refaliasing'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [63]
+    'experimental::regex_sets'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [54]
+    'experimental::signatures'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [58]
+    'experimental::smartmatch'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [55]
+    'experimental::win32_perlio'       => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [64]
+    'glob'                             => "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
+    'illegalproto'                     => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00", # [47]
+    'imprecision'                      => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00", # [46]
+    'inplace'                          => "\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23]
+    'internal'                         => "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [24]
+    'io'                               => "\x00\x54\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [5..11,59]
+    'layer'                            => "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
+    'locale'                           => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [65]
+    'malloc'                           => "\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [25]
+    'misc'                             => "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
+    'missing'                          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10", # [66]
+    'newline'                          => "\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
+    'non_unicode'                      => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00", # [48]
+    'nonchar'                          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [49]
+    'numeric'                          => "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
+    'once'                             => "\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
+    'overflow'                         => "\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
+    'pack'                             => "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16]
+    'parenthesis'                      => "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00", # [32]
+    'pipe'                             => "\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
+    'portable'                         => "\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17]
+    'precedence'                       => "\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00", # [33]
+    'printf'                           => "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00", # [34]
+    'prototype'                                => "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [35]
+    'qw'                               => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00", # [36]
+    'recursion'                                => "\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
+    'redefine'                         => "\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
+    'redundant'                                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40", # [67]
+    'regexp'                           => "\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20]
+    'reserved'                         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [37]
+    'semicolon'                                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [38]
+    'severe'                           => "\x00\x00\x00\x00\x00\x54\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25]
+    'signal'                           => "\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [26]
+    'substr'                           => "\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [27]
+    'surrogate'                                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [50]
+    'syntax'                           => "\x00\x00\x00\x00\x00\x00\x00\x55\x55\x15\x00\x40\x00\x00\x00\x00\x00", # [28..38,47]
+    'syscalls'                         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [59]
+    'taint'                            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00", # [39]
+    'threads'                          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00", # [40]
+    'uninitialized'                    => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00", # [41]
+    'unopened'                         => "\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
+    'unpack'                           => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [42]
+    'untie'                            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [43]
+    'utf8'                             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x15\x00\x00\x00\x00", # [44,48..50]
+    'void'                             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [45]
+);
 
 our %DeadBits = (
-    'all'              => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xa8\xaa\x00", # [0..59,61..67]
-    'ambiguous'                => "\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [29]
-    'bareword'         => "\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [30]
-    'closed'           => "\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
-    'closure'          => "\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
-    'debugging'                => "\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22]
-    'deprecated'       => "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
-    'digit'            => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31]
-    'everything'       => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\x0a", # [0..69]
-    'exec'             => "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
-    'exiting'          => "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
-    'experimental'     => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaa\x2a\xa8\x02\x00", # [51..58,61..64]
-    'experimental::autoderef'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [56]
-    'experimental::const_attr'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [61]
-    'experimental::lexical_subs'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00", # [52]
-    'experimental::lexical_topic'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [53]
-    'experimental::postderef'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [57]
-    'experimental::re_strict'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [62]
-    'experimental::refaliasing'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [63]
-    'experimental::regex_sets'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [54]
-    'experimental::signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [58]
-    'experimental::smartmatch'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00", # [55]
-    'experimental::win32_perlio'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [64]
-    'extra'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a", # [68,69]
-    'glob'             => "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
-    'illegalproto'     => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [47]
-    'imprecision'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [46]
-    'inplace'          => "\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23]
-    'internal'         => "\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [24]
-    'io'               => "\x00\xa8\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [5..11,59]
-    'layer'            => "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
-    'locale'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [65]
-    'malloc'           => "\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [25]
-    'misc'             => "\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
-    'missing'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [66]
-    'newline'          => "\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
-    'non_unicode'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00", # [48]
-    'nonchar'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [49]
-    'numeric'          => "\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
-    'once'             => "\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
-    'overflow'         => "\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
-    'pack'             => "\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16]
-    'parenthesis'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [32]
-    'pipe'             => "\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
-    'portable'         => "\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17]
-    'precedence'       => "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [33]
-    'printf'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [34]
-    'prototype'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [35]
-    'qw'               => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00", # [36]
-    'recursion'                => "\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
-    'redefine'         => "\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
-    'redundant'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [67]
-    'regexp'           => "\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20]
-    'reserved'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00", # [37]
-    'semicolon'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00", # [38]
-    'severe'           => "\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25]
-    'signal'           => "\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [26]
-    'substr'           => "\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [27]
-    'surrogate'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00", # [50]
-    'syntax'           => "\x00\x00\x00\x00\x00\x00\x00\xaa\xaa\x2a\x00\x80\x00\x00\x00\x00\x00\x00", # [28..38,47]
-    'syscalls'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [59]
-    'taint'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [39]
-    'threads'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00", # [40]
-    'uninitialized'    => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [41]
-    'unopened'         => "\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
-    'unpack'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [42]
-    'untie'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00", # [43]
-    'utf8'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x2a\x00\x00\x00\x00\x00", # [44,48..50]
-    'void'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00", # [45]
-    'void_unusual'     => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [69]
-  );
-
-$NONE     = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
-$DEFAULT  = "\x10\x01\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\x55\x15\x54\x05\x00", # [2,56,61,52,53,57,62,63,54,58,55,64,4,65,22,23,25]
-$LAST_BIT = 140 ;
-$BYTES    = 18 ;
-
-$All = "" ; vec($All, $Offsets{'all'}, 2) = 3 ;
+    'all'                              => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", # [0..67]
+    'ambiguous'                                => "\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [29]
+    'bareword'                         => "\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [30]
+    'closed'                           => "\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
+    'closure'                          => "\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
+    'debugging'                                => "\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22]
+    'deprecated'                       => "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
+    'digit'                            => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31]
+    'exec'                             => "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
+    'exiting'                          => "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
+    'experimental'                     => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaa\x2a\xaa\x02", # [51..58,60..64]
+    'experimental::autoderef'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [56]
+    'experimental::bitwise'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [60]
+    'experimental::const_attr'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [61]
+    'experimental::lexical_subs'       => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [52]
+    'experimental::lexical_topic'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [53]
+    'experimental::postderef'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [57]
+    'experimental::re_strict'          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [62]
+    'experimental::refaliasing'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [63]
+    'experimental::regex_sets'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [54]
+    'experimental::signatures'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [58]
+    'experimental::smartmatch'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [55]
+    'experimental::win32_perlio'       => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [64]
+    'glob'                             => "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
+    'illegalproto'                     => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00", # [47]
+    'imprecision'                      => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00", # [46]
+    'inplace'                          => "\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23]
+    'internal'                         => "\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [24]
+    'io'                               => "\x00\xa8\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [5..11,59]
+    'layer'                            => "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
+    'locale'                           => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [65]
+    'malloc'                           => "\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [25]
+    'misc'                             => "\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
+    'missing'                          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20", # [66]
+    'newline'                          => "\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
+    'non_unicode'                      => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00", # [48]
+    'nonchar'                          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [49]
+    'numeric'                          => "\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
+    'once'                             => "\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
+    'overflow'                         => "\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
+    'pack'                             => "\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16]
+    'parenthesis'                      => "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00", # [32]
+    'pipe'                             => "\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
+    'portable'                         => "\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17]
+    'precedence'                       => "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00", # [33]
+    'printf'                           => "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00", # [34]
+    'prototype'                                => "\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [35]
+    'qw'                               => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00", # [36]
+    'recursion'                                => "\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
+    'redefine'                         => "\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
+    'redundant'                                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80", # [67]
+    'regexp'                           => "\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20]
+    'reserved'                         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [37]
+    'semicolon'                                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [38]
+    'severe'                           => "\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25]
+    'signal'                           => "\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [26]
+    'substr'                           => "\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [27]
+    'surrogate'                                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [50]
+    'syntax'                           => "\x00\x00\x00\x00\x00\x00\x00\xaa\xaa\x2a\x00\x80\x00\x00\x00\x00\x00", # [28..38,47]
+    'syscalls'                         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [59]
+    'taint'                            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00", # [39]
+    'threads'                          => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00", # [40]
+    'uninitialized'                    => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00", # [41]
+    'unopened'                         => "\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
+    'unpack'                           => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [42]
+    'untie'                            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [43]
+    'utf8'                             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x2a\x00\x00\x00\x00", # [44,48..50]
+    'void'                             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [45]
+);
+
+# These are used by various things, including our own tests
+our $NONE                              =  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
+our $DEFAULT                           =  "\x10\x01\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\x55\x15\x55\x05", # [2,56,60,61,52,53,57,62,63,54,58,55,64,4,65,22,23,25]
+our $LAST_BIT                          =  136 ;
+our $BYTES                             =  17 ;
+
+our $All = "" ; vec($All, $Offsets{'all'}, 2) = 3 ;
 
 sub Croaker
 {
@@ -535,17 +523,12 @@ be applied to their module.
 By default, optional warnings are disabled, so any legacy code that
 doesn't attempt to control the warnings will work unchanged.
 
-When we talk about "all" warnings we don't actually mean "all the
-warnings we support". See L</Top-level warning categories & associated
-confusion> for details. The "all" category should really be called the
-"default" category, if not for backwards-compatibility concerns.
-
-"All" warnings are enabled in a block by either of these:
+All warnings are enabled in a block by either of these:
 
     use warnings;
     use warnings 'all';
 
-Similarly "all" warnings are disabled in a block by either of these:
+Similarly all warnings are disabled in a block by either of these:
 
     no warnings;
     no warnings 'all';
@@ -663,7 +646,7 @@ details of how this flag interacts with lexical warnings.
 =item B<-W>
 X<-W>
 
-If the B<-W> flag is used on the command line, it will enable "all" warnings
+If the B<-W> flag is used on the command line, it will enable all warnings
 throughout the program regardless of whether warnings were disabled
 locally using C<no warnings> or C<$^W =0>.
 This includes all files that get
@@ -673,80 +656,10 @@ Think of it as the Perl equivalent of the "lint" command.
 =item B<-X>
 X<-X>
 
-Does the exact opposite to the B<-W> flag, i.e. it disables "all" warnings.
+Does the exact opposite to the B<-W> flag, i.e. it disables all warnings.
 
 =back
 
-=head2 Top-level warning categories & associated confusion
-
-The lexical warning pragma was introduced in v5.6.0 of perl, and from
-the very beginning doing C<use warnings> would enable the "all"
-category of warnings, which were all the warnings we support.
-
-This led to arguments whenever someone suggested a new warning be
-added to perl, since that implicitly meant that existing programs that
-used the warnings pragma would be retroactively subjected to them when
-perl was upgraded.
-
-So similarly to how most C compilers support C<-Wall> to mean "not
-quite all warnings" along with extra options like C<-Wextra>, we
-support warnings outside of the "all" category. Think of the "all"
-category as "default", that's what we'd call it we were starting out
-today and didn't have a bunch of programs doing C<use warnings "all">
-in the wild already.
-
-The categories we support are:
-
-=over
-
-=item * all
-
-This is the "default" category for warnings that we've supported ever
-since v5.6.0. We have and might occasionally add new warnings here if
-they're deemed to be similar in nature to our existing warnings, but
-mostly these are things we're pretty sure are a logic error, but
-aren't irrecoverable, so they're not a runtime error.
-
-When you upgrade perl you might find that we've added some new
-warnings here, but they won't be anything wildly different from the
-current set of warnings, so the burden of going through your existing
-code and auditing the new parts that are warning should be fairly
-light.
-
-=item * everything
-
-This is what "all" would be if the world made any sense, but since we
-started out with "all" you need to enable "everything" to really
-enable "all the warnings".
-
-You almost definitely don't want to enable "everything", unless you're
-willing to potentially get a flood of new warnings with every perl
-upgrade, and those warnings may be entirely different in spirit to
-existing warnings shipped with previous releases.
-
-Maybe we'll start introducing really pedantic warnings that aren't
-useful for most cases, maybe we'll start warning about inconsistent
-indentation, who knows? If you really want ALL the warnings perl has
-to offer enable these, otherwise stick with some more sane category.
-
-=item * extra
-
-These are warnings that we might have put into "all"
-(a.k.a. "default") if we had a time machine and were starting out with
-perl today, but they'd probably cause too much of a disruption today
-so we're not doing that.
-
-As of writing this the sole warning in this category is a warning
-about useless use of grep in void context, but unlike for the "all"
-category we reserve the right to freely add things to this category in
-the future.
-
-=back
-
-In the future we might add any number of other top-level
-categories. The backwards-compatibility promises of those categories
-(if any) will be documented here.
-
 =head2 Backward Compatibility
 
 If you are used to working with a version of Perl prior to the
@@ -803,145 +716,141 @@ to be enabled/disabled in isolation.
 
 The current hierarchy is:
 
- everything -+
-             |
-             +- all ---+
-             |         |
-             |         +- closure
-             |         |
-             |         +- deprecated
-             |         |
-             |         +- exiting
-             |         |
-             |         +- experimental --+
-             |         |                 |
-             |         |                 +- experimental::autoderef
-             |         |                 |
-             |         |                 +- experimental::const_attr
-             |         |                 |
-             |         |                 +- experimental::lexical_subs
-             |         |                 |
-             |         |                 +- experimental::lexical_topic
-             |         |                 |
-             |         |                 +- experimental::postderef
-             |         |                 |
-             |         |                 +- experimental::re_strict
-             |         |                 |
-             |         |                 +- experimental::refaliasing
-             |         |                 |
-             |         |                 +- experimental::regex_sets
-             |         |                 |
-             |         |                 +- experimental::signatures
-             |         |                 |
-             |         |                 +- experimental::smartmatch
-             |         |                 |
-             |         |                 +- experimental::win32_perlio
-             |         |
-             |         +- glob
-             |         |
-             |         +- imprecision
-             |         |
-             |         +- io ------------+
-             |         |                 |
-             |         |                 +- closed
-             |         |                 |
-             |         |                 +- exec
-             |         |                 |
-             |         |                 +- layer
-             |         |                 |
-             |         |                 +- newline
-             |         |                 |
-             |         |                 +- pipe
-             |         |                 |
-             |         |                 +- syscalls
-             |         |                 |
-             |         |                 +- unopened
-             |         |
-             |         +- locale
-             |         |
-             |         +- misc
-             |         |
-             |         +- missing
-             |         |
-             |         +- numeric
-             |         |
-             |         +- once
-             |         |
-             |         +- overflow
-             |         |
-             |         +- pack
-             |         |
-             |         +- portable
-             |         |
-             |         +- recursion
-             |         |
-             |         +- redefine
-             |         |
-             |         +- redundant
-             |         |
-             |         +- regexp
-             |         |
-             |         +- severe --------+
-             |         |                 |
-             |         |                 +- debugging
-             |         |                 |
-             |         |                 +- inplace
-             |         |                 |
-             |         |                 +- internal
-             |         |                 |
-             |         |                 +- malloc
-             |         |
-             |         +- signal
-             |         |
-             |         +- substr
-             |         |
-             |         +- syntax --------+
-             |         |                 |
-             |         |                 +- ambiguous
-             |         |                 |
-             |         |                 +- bareword
-             |         |                 |
-             |         |                 +- digit
-             |         |                 |
-             |         |                 +- illegalproto
-             |         |                 |
-             |         |                 +- parenthesis
-             |         |                 |
-             |         |                 +- precedence
-             |         |                 |
-             |         |                 +- printf
-             |         |                 |
-             |         |                 +- prototype
-             |         |                 |
-             |         |                 +- qw
-             |         |                 |
-             |         |                 +- reserved
-             |         |                 |
-             |         |                 +- semicolon
-             |         |
-             |         +- taint
-             |         |
-             |         +- threads
-             |         |
-             |         +- uninitialized
-             |         |
-             |         +- unpack
-             |         |
-             |         +- untie
-             |         |
-             |         +- utf8 ----------+
-             |         |                 |
-             |         |                 +- non_unicode
-             |         |                 |
-             |         |                 +- nonchar
-             |         |                 |
-             |         |                 +- surrogate
-             |         |
-             |         +- void
-             |
-             +- extra -+
-                       |
-                       +- void_unusual
+    all -+
+         |
+         +- closure
+         |
+         +- deprecated
+         |
+         +- exiting
+         |
+         +- experimental --+
+         |                 |
+         |                 +- experimental::autoderef
+         |                 |
+         |                 +- experimental::bitwise
+         |                 |
+         |                 +- experimental::const_attr
+         |                 |
+         |                 +- experimental::lexical_subs
+         |                 |
+         |                 +- experimental::lexical_topic
+         |                 |
+         |                 +- experimental::postderef
+         |                 |
+         |                 +- experimental::re_strict
+         |                 |
+         |                 +- experimental::refaliasing
+         |                 |
+         |                 +- experimental::regex_sets
+         |                 |
+         |                 +- experimental::signatures
+         |                 |
+         |                 +- experimental::smartmatch
+         |                 |
+         |                 +- experimental::win32_perlio
+         |
+         +- glob
+         |
+         +- imprecision
+         |
+         +- io ------------+
+         |                 |
+         |                 +- closed
+         |                 |
+         |                 +- exec
+         |                 |
+         |                 +- layer
+         |                 |
+         |                 +- newline
+         |                 |
+         |                 +- pipe
+         |                 |
+         |                 +- syscalls
+         |                 |
+         |                 +- unopened
+         |
+         +- locale
+         |
+         +- misc
+         |
+         +- missing
+         |
+         +- numeric
+         |
+         +- once
+         |
+         +- overflow
+         |
+         +- pack
+         |
+         +- portable
+         |
+         +- recursion
+         |
+         +- redefine
+         |
+         +- redundant
+         |
+         +- regexp
+         |
+         +- severe --------+
+         |                 |
+         |                 +- debugging
+         |                 |
+         |                 +- inplace
+         |                 |
+         |                 +- internal
+         |                 |
+         |                 +- malloc
+         |
+         +- signal
+         |
+         +- substr
+         |
+         +- syntax --------+
+         |                 |
+         |                 +- ambiguous
+         |                 |
+         |                 +- bareword
+         |                 |
+         |                 +- digit
+         |                 |
+         |                 +- illegalproto
+         |                 |
+         |                 +- parenthesis
+         |                 |
+         |                 +- precedence
+         |                 |
+         |                 +- printf
+         |                 |
+         |                 +- prototype
+         |                 |
+         |                 +- qw
+         |                 |
+         |                 +- reserved
+         |                 |
+         |                 +- semicolon
+         |
+         +- taint
+         |
+         +- threads
+         |
+         +- uninitialized
+         |
+         +- unpack
+         |
+         +- untie
+         |
+         +- utf8 ----------+
+         |                 |
+         |                 +- non_unicode
+         |                 |
+         |                 +- nonchar
+         |                 |
+         |                 +- surrogate
+         |
+         +- void
 
 Just like the "strict" pragma any of these categories can be combined
 
index 1ef1be9..6c62c1f 100644 (file)
--- a/locale.c
+++ b/locale.c
@@ -508,7 +508,7 @@ Perl_my_setlocale(pTHX_ int category, const char* locale)
      * otherwise to use the particular category's variable if set; otherwise to
      * use the LANG variable. */
 
-    bool override_LC_ALL = 0;
+    bool override_LC_ALL = FALSE;
     char * result;
 
     if (locale && strEQ(locale, "")) {
@@ -574,7 +574,7 @@ Perl_my_setlocale(pTHX_ int category, const char* locale)
         return result;
     }
 
-    /* Here the input locale was LC_ALL, and we have set it to what is in the
+    /* Here the input category was LC_ALL, and we have set it to what is in the
      * LANG variable or the system default if there is no LANG.  But these have
      * lower priority than the other LC_foo variables, so override it for each
      * one that is set.  (If they are set to "", it means to use the same thing
@@ -654,7 +654,7 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
     char *curnum     = NULL;
 #endif /* USE_LOCALE_NUMERIC */
 #ifdef __GLIBC__
-    char * const language   = PerlEnv_getenv("LANGUAGE");
+    const char * const language   = savepv(PerlEnv_getenv("LANGUAGE"));
 #endif
 
     /* NULL uses the existing already set up locale */
@@ -663,15 +663,19 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
                                         : "";
     const char* trial_locales[5];   /* 5 = 1 each for "", LC_ALL, LANG, "", C */
     unsigned int trial_locales_count;
-    char * const lc_all     = PerlEnv_getenv("LC_ALL");
-    char * const lang       = PerlEnv_getenv("LANG");
+    const char * const lc_all     = savepv(PerlEnv_getenv("LC_ALL"));
+    const char * const lang       = savepv(PerlEnv_getenv("LANG"));
     bool setlocale_failure = FALSE;
     unsigned int i;
     char *p;
-    const bool locwarn = (printwarn > 1 ||
-                    (printwarn &&
-                     (!(p = PerlEnv_getenv("PERL_BADLANG")) ||
-                      grok_atou(p, NULL))));
+
+    /* A later getenv() could zap this, so only use here */
+    const char * const bad_lang_use_once = PerlEnv_getenv("PERL_BADLANG");
+
+    const bool locwarn = (printwarn > 1
+                          || (printwarn
+                              && (! bad_lang_use_once
+                                  || grok_atou(bad_lang_use_once, NULL))));
     bool done = FALSE;
 #ifdef WIN32
     /* In some systems you can find out the system default locale
@@ -921,7 +925,7 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
             }
 
             /* Calculate what fallback locales to try.  We have avoided this
-             * until we have to, becuase failure is quite unlikely.  This will
+             * until we have to, because failure is quite unlikely.  This will
              * usually change the upper bound of the loop we are in.
              *
              * Since the system's default way of setting the locale has not
@@ -1080,6 +1084,13 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
     PERL_UNUSED_ARG(printwarn);
 #endif /* USE_LOCALE */
 
+#ifdef __GLIBC__
+    Safefree(language);
+#endif
+
+    Safefree(lc_all);
+    Safefree(lang);
+
     return ok;
 }
 
index 0bc3862..b31d8a0 100644 (file)
 #    perl.imp    NetWare
 #    makedef.lis VMS
 
-BEGIN { unshift @INC, "lib" }
-use Config;
-use strict;
-
-my %ARGS = (CCTYPE => 'MSVC', TARG_DIR => '');
-
+my $fold;
+my %ARGS;
 my %define;
 
-my $fold;
+BEGIN {
+    BEGIN { unshift @INC, "lib" }
+    use Config;
+    use strict;
 
-sub process_cc_flags {
-    foreach (map {split /\s+/, $_} @_) {
-       $define{$1} = $2 // 1 if /^-D(\w+)(?:=(.+))?/;
-    }
-}
+    %ARGS = (CCTYPE => 'MSVC', TARG_DIR => '');
 
-while (@ARGV) {
-    my $flag = shift;
-    if ($flag =~ /^(?:CC_FLAGS=)?(-D\w.*)/) {
-       process_cc_flags($1);
-    } elsif ($flag =~ /^(CCTYPE|FILETYPE|PLATFORM|TARG_DIR)=(.+)$/) {
-       $ARGS{$1} = $2;
-    } elsif ($flag eq '--sort-fold') {
-       ++$fold;
+    sub process_cc_flags {
+       foreach (map {split /\s+/, $_} @_) {
+           $define{$1} = $2 // 1 if /^-D(\w+)(?:=(.+))?/;
+       }
     }
-}
 
-require "$ARGS{TARG_DIR}regen/embed_lib.pl";
-
-{
+    while (@ARGV) {
+       my $flag = shift;
+       if ($flag =~ /^(?:CC_FLAGS=)?(-D\w.*)/) {
+           process_cc_flags($1);
+       } elsif ($flag =~ /^(CCTYPE|FILETYPE|PLATFORM|TARG_DIR)=(.+)$/) {
+           $ARGS{$1} = $2;
+       } elsif ($flag eq '--sort-fold') {
+           ++$fold;
+       }
+    }
     my @PLATFORM = qw(aix win32 wince os2 netware vms test);
     my %PLATFORM;
     @PLATFORM{@PLATFORM} = ();
@@ -71,6 +68,9 @@ require "$ARGS{TARG_DIR}regen/embed_lib.pl";
     die "PLATFORM must be one of: @PLATFORM\n"
        unless exists $PLATFORM{$ARGS{PLATFORM}};
 }
+use constant PLATFORM => $ARGS{PLATFORM};
+
+require "$ARGS{TARG_DIR}regen/embed_lib.pl";
 
 # Is the following guard strictly necessary? Added during refactoring
 # to keep the same behaviour when merging other code into here.
@@ -1301,10 +1301,16 @@ elsif ($ARGS{PLATFORM} eq 'netware') {
 
 my @symbols = $fold ? sort {lc $a cmp lc $b} keys %export : sort keys %export;
 foreach my $symbol (@symbols) {
-    if ($ARGS{PLATFORM} =~ /^win(?:32|ce)$/) {
-       print "\t$symbol\n";
+    if (PLATFORM eq 'win32' || PLATFORM eq 'wince') {
+       # Remembering the origin file of each symbol is an alternative to PL_ matching
+       if (substr($symbol, 0, 3) eq 'PL_') {
+           print "\t$symbol DATA\n";
+       }
+       else {
+           print "\t$symbol\n";
+       }
     }
-    elsif ($ARGS{PLATFORM} eq 'os2') {
+    elsif (PLATFORM eq 'os2') {
        printf qq(    %-31s \@%s\n),
          qq("$symbol"), $ordinal{$symbol} || ++$sym_ord;
        printf qq(    %-31s \@%s\n),
@@ -1312,7 +1318,7 @@ foreach my $symbol (@symbols) {
          $ordinal{$exportperlmalloc{$symbol}} || ++$sym_ord
          if $exportperlmalloc and exists $exportperlmalloc{$symbol};
     }
-    elsif ($ARGS{PLATFORM} eq 'netware') {
+    elsif (PLATFORM eq 'netware') {
        print "\t$symbol,\n";
     } else {
        print "$symbol\n";
index 51035fe..58bec64 100644 (file)
--- a/malloc.c
+++ b/malloc.c
@@ -1524,7 +1524,7 @@ getpages(MEM_SIZE needed, int *nblksp, int bucket)
                
        if (add) {
            DEBUG_m(PerlIO_printf(Perl_debug_log, 
-                                 "sbrk(%ld) to fix non-continuous/off-page sbrk:\n\t%ld for alignement,\t%ld were assumed to come from the tail of the previous sbrk\n",
+                                 "sbrk(%ld) to fix non-continuous/off-page sbrk:\n\t%ld for alignment,\t%ld were assumed to come from the tail of the previous sbrk\n",
                                  (long)add, (long) slack,
                                  (long) sbrked_remains));
            newcp = (char *)sbrk(add);
index 96b3ac3..2a65fb4 100644 (file)
--- a/mathoms.c
+++ b/mathoms.c
@@ -1019,8 +1019,6 @@ Perl_hv_delete(pTHX_ HV *hv, const char *key, I32 klen_i32, I32 flags)
                                NULL, 0));
 }
 
-/* Functions after here were made mathoms post 5.10.0 but pre 5.8.9 */
-
 AV *
 Perl_newAV(pTHX)
 {
@@ -1217,6 +1215,14 @@ Perl_sv_mortalcopy(pTHX_ SV *const oldstr)
     return Perl_sv_mortalcopy_flags(aTHX_ oldstr, SV_GMAGIC);
 }
 
+void
+Perl_sv_copypv(pTHX_ SV *const dsv, SV *const ssv)
+{
+    PERL_ARGS_ASSERT_SV_COPYPV;
+
+    sv_copypv_flags(dsv, ssv, 0);
+}
+
 UV      /* Made into a function, so can be deprecated */
 NATIVE_TO_NEED(const UV enc, const UV ch)
 {
@@ -1695,6 +1701,22 @@ Perl_is_utf8_char(const U8 *s)
     return isUTF8_CHAR(s, s + UTF8SKIP(s));
 }
 
+/*
+=for apidoc is_utf8_char_buf
+
+This is identical to the macro L</isUTF8_CHAR>.
+
+=cut */
+
+STRLEN
+Perl_is_utf8_char_buf(const U8 *buf, const U8* buf_end)
+{
+
+    PERL_ARGS_ASSERT_IS_UTF8_CHAR_BUF;
+
+    return isUTF8_CHAR(buf, buf_end);
+}
+
 /* DEPRECATED!
  * Like L</utf8_to_uvuni_buf>(), but should only be called when it is known that
  * there are no malformations in the input UTF-8 string C<s>.  Surrogates,
index 9043d89..7cc35a4 100755 (executable)
@@ -17,7 +17,7 @@
 # are removed/replaced in patches on blead, but are still needed in the
 # 5.8.x, 5.6.x and 5.005.x maintainance tracks.
 # metaconfig -m will scan all .SH files on this level (not deeper), and
-# not in x2p and other subfolders. This file is as good as any .SH
+# not in other subfolders. This file is as good as any .SH
 # patch   references
 # #22227 $baserev
 # #22302 $yacc $byacc
diff --git a/mg.c b/mg.c
index a64801e..d2a8db0 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -1103,7 +1103,6 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
            sv_setiv(sv, (IV)IoPAGE(GvIOp(PL_defoutgv)));
        break;
     case ':':
-       break;
     case '/':
        break;
     case '[':
@@ -2774,6 +2773,17 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
                            PerlMemShared_free(PL_compiling.cop_warnings);
                        PL_compiling.cop_warnings = pWARN_NONE;
                    }
+                   /* Yuck. I can't see how to abstract this:  */
+                   else if (isWARN_on(
+                                ((STRLEN *)SvPV_nolen_const(sv)) - 1,
+                                WARN_ALL)
+                            && !any_fatals)
+                    {
+                       if (!specialWARN(PL_compiling.cop_warnings))
+                           PerlMemShared_free(PL_compiling.cop_warnings);
+                       PL_compiling.cop_warnings = pWARN_ALL;
+                       PL_dowarn |= G_WARN_ONCE ;
+                   }
                     else {
                        STRLEN len;
                        const char *const p = SvPV_const(sv, len);
@@ -2857,6 +2867,7 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
                         );
                     }
                 } else {
+                    sv_setsv(sv, PL_rs);
               /* diag_listed_as: Setting $/ to %s reference is forbidden */
                     Perl_croak(aTHX_ "Setting $/ to a%s %s reference is forbidden",
                                       *reftype == 'A' ? "n" : "", reftype);
@@ -3341,7 +3352,7 @@ Perl_sighandler(int sig)
        }
     }
 
-cleanup:
+  cleanup:
     /* pop any of SAVEFREESV, SAVEDESTRUCTOR_X and "save in progress" */
     PL_savestack_ix = old_ss_ix;
     if (flags & 8)
index 9e05d55..a6f6018 100644 (file)
--- a/numeric.c
+++ b/numeric.c
@@ -548,45 +548,6 @@ Perl_grok_numeric_radix(pTHX_ const char **sp, const char *send)
 }
 
 /*
-=for apidoc grok_number_flags
-
-Recognise (or not) a number.  The type of the number is returned
-(0 if unrecognised), otherwise it is a bit-ORed combination of
-IS_NUMBER_IN_UV, IS_NUMBER_GREATER_THAN_UV_MAX, IS_NUMBER_NOT_INT,
-IS_NUMBER_NEG, IS_NUMBER_INFINITY, IS_NUMBER_NAN (defined in perl.h).
-
-If the value of the number can fit in a UV, it is returned in the *valuep
-IS_NUMBER_IN_UV will be set to indicate that *valuep is valid, IS_NUMBER_IN_UV
-will never be set unless *valuep is valid, but *valuep may have been assigned
-to during processing even though IS_NUMBER_IN_UV is not set on return.
-If valuep is NULL, IS_NUMBER_IN_UV will be set for the same cases as when
-valuep is non-NULL, but no actual assignment (or SEGV) will occur.
-
-IS_NUMBER_NOT_INT will be set with IS_NUMBER_IN_UV if trailing decimals were
-seen (in which case *valuep gives the true value truncated to an integer), and
-IS_NUMBER_NEG if the number is negative (in which case *valuep holds the
-absolute value).  IS_NUMBER_IN_UV is not set if e notation was used or the
-number is larger than a UV.
-
-C<flags> allows only C<PERL_SCAN_TRAILING>, which allows for trailing
-non-numeric text on an otherwise successful I<grok>, setting
-C<IS_NUMBER_TRAILING> on the result.
-
-=for apidoc grok_number
-
-Identical to grok_number_flags() with flags set to zero.
-
-=cut
- */
-int
-Perl_grok_number(pTHX_ const char *pv, STRLEN len, UV *valuep)
-{
-    PERL_ARGS_ASSERT_GROK_NUMBER;
-
-    return grok_number_flags(pv, len, valuep, 0);
-}
-
-/*
 =for apidoc grok_infnan
 
 Helper for grok_number(), accepts various ways of spelling "infinity"
@@ -598,19 +559,21 @@ or "not a number", and returns one of the following flag combinations:
   IS_NUMBER_NAN | IS_NUMBER_NEG
   0
 
-If an infinity or not-a-number is recognized, the *sp will point to
-one past the end of the recognized string.  If the recognition fails,
+possibly |-ed with IS_NUMBER_TRAILING.
+
+If an infinity or a not-a-number is recognized, the *sp will point to
+one byte past the end of the recognized string.  If the recognition fails,
 zero is returned, and the *sp will not move.
 
 =cut
 */
 
 int
-Perl_grok_infnan(const char** sp, const char* send)
+Perl_grok_infnan(pTHX_ const char** sp, const char* send)
 {
     const char* s = *sp;
     int flags = 0;
-    bool odh = FALSE; /* one dot hash: 1.#INF */
+    bool odh = FALSE; /* one-dot-hash: 1.#INF */
 
     PERL_ARGS_ASSERT_GROK_INFNAN;
 
@@ -623,7 +586,8 @@ Perl_grok_infnan(const char** sp, const char* send)
     }
 
     if (*s == '1') {
-        /* Visual C: 1.#SNAN, -1.#QNAN, 1#INF, 1#.IND (maybe also 1.#NAN) */
+        /* Visual C: 1.#SNAN, -1.#QNAN, 1#INF, 1.#IND (maybe also 1.#NAN)
+         * Let's keep the dot optional. */
         s++; if (s == send) return 0;
         if (*s == '.') {
             s++; if (s == send) return 0;
@@ -636,32 +600,47 @@ Perl_grok_infnan(const char** sp, const char* send)
     }
 
     if (isALPHA_FOLD_EQ(*s, 'I')) {
-        /* INF or IND (1.#IND is indeterminate, a certain type of NAN) */
+        /* INF or IND (1.#IND is "indeterminate", a certain type of NAN) */
+
         s++; if (s == send || isALPHA_FOLD_NE(*s, 'N')) return 0;
         s++; if (s == send) return 0;
         if (isALPHA_FOLD_EQ(*s, 'F')) {
             s++;
             if (s < send && (isALPHA_FOLD_EQ(*s, 'I'))) {
-                s++; if (s == send || isALPHA_FOLD_NE(*s, 'N')) return 0;
-                s++; if (s == send || isALPHA_FOLD_NE(*s, 'I')) return 0;
-                s++; if (s == send || isALPHA_FOLD_NE(*s, 'T')) return 0;
-                s++; if (s == send ||
-                         /* allow either Infinity or Infinite */
-                         !(isALPHA_FOLD_EQ(*s, 'Y') ||
-                           isALPHA_FOLD_EQ(*s, 'E'))) return 0;
-                s++; if (s < send) return 0;
-            } else if (*s)
-                return 0;
+                int fail =
+                    flags | IS_NUMBER_INFINITY | IS_NUMBER_NOT_INT | IS_NUMBER_TRAILING;
+                s++; if (s == send || isALPHA_FOLD_NE(*s, 'N')) return fail;
+                s++; if (s == send || isALPHA_FOLD_NE(*s, 'I')) return fail;
+                s++; if (s == send || isALPHA_FOLD_NE(*s, 'T')) return fail;
+                s++; if (s == send || isALPHA_FOLD_NE(*s, 'Y')) return fail;
+                s++;
+            } else if (odh) {
+                while (*s == '0') { /* 1.#INF00 */
+                    s++;
+                }
+            }
+            while (s < send && isSPACE(*s))
+                s++;
+            if (s < send && *s) {
+                flags |= IS_NUMBER_TRAILING;
+            }
             flags |= IS_NUMBER_INFINITY | IS_NUMBER_NOT_INT;
         }
         else if (isALPHA_FOLD_EQ(*s, 'D') && odh) { /* 1.#IND */
             s++;
             flags |= IS_NUMBER_NAN | IS_NUMBER_NOT_INT;
+            while (*s == '0') { /* 1.#IND00 */
+                s++;
+            }
+            if (*s) {
+                flags |= IS_NUMBER_TRAILING;
+            }
         } else
             return 0;
     }
     else {
-        /* NAN */
+        /* Maybe NAN of some sort */
+
         if (isALPHA_FOLD_EQ(*s, 'S') || isALPHA_FOLD_EQ(*s, 'Q')) {
             /* snan, qNaN */
             /* XXX do something with the snan/qnan difference */
@@ -678,18 +657,189 @@ Perl_grok_infnan(const char** sp, const char* send)
             /* NaN can be followed by various stuff (NaNQ, NaNS), but
              * there are also multiple different NaN values, and some
              * implementations output the "payload" values,
-             * e.g. NaN123, NAN(abc), while some implementations just
+             * e.g. NaN123, NAN(abc), while some legacy implementations
              * have weird stuff like NaN%. */
+            if (isALPHA_FOLD_EQ(*s, 'q') ||
+                isALPHA_FOLD_EQ(*s, 's')) {
+                /* "nanq" or "nans" are ok, though generating
+                 * these portably is tricky. */
+                s++;
+            }
+            if (*s == '(') {
+                /* C99 style "nan(123)" or Perlish equivalent "nan($uv)". */
+                const char *t;
+                s++;
+                if (s == send) {
+                    return flags | IS_NUMBER_TRAILING;
+                }
+                t = s + 1;
+                while (t < send && *t && *t != ')') {
+                    t++;
+                }
+                if (t == send) {
+                    return flags | IS_NUMBER_TRAILING;
+                }
+                if (*t == ')') {
+                    int nantype;
+                    UV nanval;
+                    if (s[0] == '0' && s + 2 < t &&
+                        isALPHA_FOLD_EQ(s[1], 'x') &&
+                        isXDIGIT(s[2])) {
+                        STRLEN len = t - s;
+                        I32 flags = PERL_SCAN_ALLOW_UNDERSCORES;
+                        nanval = grok_hex(s, &len, &flags, NULL);
+                        if ((flags & PERL_SCAN_GREATER_THAN_UV_MAX)) {
+                            nantype = 0;
+                        } else {
+                            nantype = IS_NUMBER_IN_UV;
+                        }
+                        s += len;
+                    } else if (s[0] == '0' && s + 2 < t &&
+                               isALPHA_FOLD_EQ(s[1], 'b') &&
+                               (s[2] == '0' || s[2] == '1')) {
+                        STRLEN len = t - s;
+                        I32 flags = PERL_SCAN_ALLOW_UNDERSCORES;
+                        nanval = grok_bin(s, &len, &flags, NULL);
+                        if ((flags & PERL_SCAN_GREATER_THAN_UV_MAX)) {
+                            nantype = 0;
+                        } else {
+                            nantype = IS_NUMBER_IN_UV;
+                        }
+                        s += len;
+                    } else {
+                        const char *u;
+                        nantype =
+                            grok_number_flags(s, t - s, &nanval,
+                                              PERL_SCAN_TRAILING |
+                                              PERL_SCAN_ALLOW_UNDERSCORES);
+                        /* Unfortunately grok_number_flags() doesn't
+                         * tell how far we got and the ')' will always
+                         * be "trailing", so we need to double-check
+                         * whether we had something dubious. */
+                        for (u = s; u < t; u++) {
+                            if (!isDIGIT(*u)) {
+                                flags |= IS_NUMBER_TRAILING;
+                                break;
+                            }
+                        }
+                        s = u;
+                    }
+
+                    /* XXX Doesn't do octal: nan("0123").
+                     * Probably not a big loss. */
+
+                    if ((nantype & IS_NUMBER_NOT_INT) ||
+                        !(nantype && IS_NUMBER_IN_UV)) {
+                        /* XXX the nanval is currently unused, that is,
+                         * not inserted as the NaN payload of the NV.
+                         * But the above code already parses the C99
+                         * nan(...)  format.  See below, and see also
+                         * the nan() in POSIX.xs.
+                         *
+                         * Certain configuration combinations where
+                         * NVSIZE is greater than UVSIZE mean that
+                         * a single UV cannot contain all the possible
+                         * NaN payload bits.  There would need to be
+                         * some more generic syntax than "nan($uv)".
+                         *
+                         * Issues to keep in mind:
+                         *
+                         * (1) In most common cases there would
+                         * not be an integral number of bytes that
+                         * could be set, only a certain number of bits.
+                         * For example for the common case of
+                         * NVSIZE == UVSIZE == 8 there is room for 52
+                         * bits in the payload, but the most significant
+                         * bit is commonly reserved for the
+                         * signaling/quiet bit, leaving 51 bits.
+                         * Furthermore, the C99 nan() is supposed
+                         * to generate quiet NaNs, so it is doubtful
+                         * whether it should be able to generate
+                         * signaling NaNs.  For the x86 80-bit doubles
+                         * (if building a long double Perl) there would
+                         * be 62 bits (s/q bit being the 63rd).
+                         *
+                         * (2) Endianness of the payload bits. If the
+                         * payload is specified as an UV, the low-order
+                         * bits of the UV are naturally little-endianed
+                         * (rightmost) bits of the payload.  The endianness
+                         * of UVs and NVs can be different. */
+                        return 0;
+                    }
+                    if (s < t) {
+                        flags |= IS_NUMBER_TRAILING;
+                    }
+                } else {
+                    /* Looked like nan(...), but no close paren. */
+                    flags |= IS_NUMBER_TRAILING;
+                }
+            } else {
+                while (s < send && isSPACE(*s))
+                    s++;
+                if (s < send && *s) {
+                    /* Note that we here implicitly accept (parse as
+                     * "nan", but with warnings) also any other weird
+                     * trailing stuff for "nan".  In the above we just
+                     * check that if we got the C99-style "nan(...)",
+                     * the "..."  looks sane.
+                     * If in future we accept more ways of specifying
+                     * the nan payload, the accepting would happen around
+                     * here. */
+                    flags |= IS_NUMBER_TRAILING;
+                }
+            }
             s = send;
         }
         else
             return 0;
     }
 
+    while (s < send && isSPACE(*s))
+        s++;
+
     *sp = s;
     return flags;
 }
 
+/*
+=for apidoc grok_number_flags
+
+Recognise (or not) a number.  The type of the number is returned
+(0 if unrecognised), otherwise it is a bit-ORed combination of
+IS_NUMBER_IN_UV, IS_NUMBER_GREATER_THAN_UV_MAX, IS_NUMBER_NOT_INT,
+IS_NUMBER_NEG, IS_NUMBER_INFINITY, IS_NUMBER_NAN (defined in perl.h).
+
+If the value of the number can fit in a UV, it is returned in the *valuep
+IS_NUMBER_IN_UV will be set to indicate that *valuep is valid, IS_NUMBER_IN_UV
+will never be set unless *valuep is valid, but *valuep may have been assigned
+to during processing even though IS_NUMBER_IN_UV is not set on return.
+If valuep is NULL, IS_NUMBER_IN_UV will be set for the same cases as when
+valuep is non-NULL, but no actual assignment (or SEGV) will occur.
+
+IS_NUMBER_NOT_INT will be set with IS_NUMBER_IN_UV if trailing decimals were
+seen (in which case *valuep gives the true value truncated to an integer), and
+IS_NUMBER_NEG if the number is negative (in which case *valuep holds the
+absolute value).  IS_NUMBER_IN_UV is not set if e notation was used or the
+number is larger than a UV.
+
+C<flags> allows only C<PERL_SCAN_TRAILING>, which allows for trailing
+non-numeric text on an otherwise successful I<grok>, setting
+C<IS_NUMBER_TRAILING> on the result.
+
+=for apidoc grok_number
+
+Identical to grok_number_flags() with flags set to zero.
+
+=cut
+ */
+int
+Perl_grok_number(pTHX_ const char *pv, STRLEN len, UV *valuep)
+{
+    PERL_ARGS_ASSERT_GROK_NUMBER;
+
+    return grok_number_flags(pv, len, valuep, 0);
+}
+
 static const UV uv_max_div_10 = UV_MAX / 10;
 static const U8 uv_max_mod_10 = UV_MAX % 10;
 
@@ -867,7 +1017,7 @@ Perl_grok_number_flags(pTHX_ const char *pv, STRLEN len, UV *valuep, U32 flags)
   if ((s + 2 < send) && strchr("inqs#", toFOLD(*s))) {
       /* Really detect inf/nan. Start at d, not s, since the above
        * code might have already consumed the "1." or "1". */
-      int infnan = Perl_grok_infnan(&d, send);
+      int infnan = Perl_grok_infnan(aTHX_ &d, send);
       if ((infnan & IS_NUMBER_INFINITY)) {
           return (numtype | infnan); /* Keep sign for infinity. */
       }
@@ -1109,8 +1259,13 @@ Perl_my_atof(pTHX_ const char* s)
     return x;
 }
 
+
+#ifdef USING_MSVC6
+#  pragma warning(push)
+#  pragma warning(disable:4756;disable:4056)
+#endif
 static char*
-S_my_atof_infnan(const char* s, bool negative, const char* send, NV* value)
+S_my_atof_infnan(pTHX_ const char* s, bool negative, const char* send, NV* value)
 {
     const char *p0 = negative ? s - 1 : s;
     const char *p = p0;
@@ -1180,6 +1335,9 @@ S_my_atof_infnan(const char* s, bool negative, const char* send, NV* value)
     }
     return NULL;
 }
+#ifdef USING_MSVC6
+#  pragma warning(pop)
+#endif
 
 char*
 Perl_my_atof2(pTHX_ const char* orig, NV* value)
@@ -1265,7 +1423,7 @@ Perl_my_atof2(pTHX_ const char* orig, NV* value)
 
     {
         const char* endp;
-        if ((endp = S_my_atof_infnan(s, negative, send, value)))
+        if ((endp = S_my_atof_infnan(aTHX_ s, negative, send, value)))
             return (char*)endp;
     }
 
diff --git a/op.c b/op.c
index 6ed08a3..2a76ae4 100644 (file)
--- a/op.c
+++ b/op.c
@@ -953,7 +953,7 @@ Perl_op_clear(pTHX_ OP *o)
        /* FALLTHROUGH */
     case OP_MATCH:
     case OP_QR:
-clear_pmop:
+    clear_pmop:
        if (!(cPMOPo->op_pmflags & PMf_CODELIST_PRIVATE))
            op_free(cPMOPo->op_code_list);
        cPMOPo->op_code_list = NULL;
@@ -1767,7 +1767,6 @@ Perl_scalarvoid(pTHX_ OP *arg)
     do {
         SV *useless_sv = NULL;
         const char* useless = NULL;
-        bool useless_is_grep = FALSE;
 
         if (o->op_type == OP_NEXTSTATE
             || o->op_type == OP_DBSTATE
@@ -1887,14 +1886,8 @@ Perl_scalarvoid(pTHX_ OP *arg)
         case OP_HELEM:
         case OP_HSLICE:
             if (!(o->op_private & (OPpLVAL_INTRO|OPpOUR_INTRO)))
-                useless = OP_DESC(o);
-            break;
-        case OP_GREPWHILE:
-            if (!(o->op_private & (OPpLVAL_INTRO|OPpOUR_INTRO))) {
                 /* Otherwise it's "Useless use of grep iterator" */
-                useless = "grep";
-                useless_is_grep = TRUE;
-            }
+                useless = OP_DESC(o);
             break;
 
         case OP_SPLIT:
@@ -2125,15 +2118,9 @@ Perl_scalarvoid(pTHX_ OP *arg)
                            SVfARG(sv_2mortal(useless_sv)));
         }
         else if (useless) {
-           if (useless_is_grep) {
-                Perl_ck_warner(aTHX_ packWARN(WARN_VOID_UNUSUAL),
-                               "Unusual use of %s in void context",
-                               useless);
-           } else {
-                Perl_ck_warner(aTHX_ packWARN(WARN_VOID),
-                               "Useless use of %s in void context",
-                               useless);
-           }
+            Perl_ck_warner(aTHX_ packWARN(WARN_VOID),
+                           "Useless use of %s in void context",
+                           useless);
         }
     } while ( (o = POP_DEFERRED_OP()) );
 
@@ -6826,7 +6813,7 @@ S_search_const(pTHX_ OP *o)
            } while (kid);
            if (!kid)
                kid = cLISTOPo->op_last;
-last:
+          last:
            return search_const(kid);
        }
     }
@@ -9494,10 +9481,15 @@ Perl_ck_bitop(pTHX_ OP *o)
     PERL_ARGS_ASSERT_CK_BITOP;
 
     o->op_private = (U8)(PL_hints & HINT_INTEGER);
+
+    if (o->op_type == OP_NBIT_OR     || o->op_type == OP_SBIT_OR
+     || o->op_type == OP_NBIT_XOR    || o->op_type == OP_SBIT_XOR
+     || o->op_type == OP_NBIT_AND    || o->op_type == OP_SBIT_AND
+     || o->op_type == OP_NCOMPLEMENT || o->op_type == OP_SCOMPLEMENT)
+       Perl_ck_warner_d(aTHX_ packWARN(WARN_EXPERIMENTAL__BITWISE),
+                             "The bitwise feature is experimental");
     if (!(o->op_flags & OPf_STACKED) /* Not an assignment */
-           && (o->op_type == OP_BIT_OR
-            || o->op_type == OP_BIT_AND
-            || o->op_type == OP_BIT_XOR))
+           && OP_IS_INFIX_BIT(o->op_type))
     {
        const OP * const left = cBINOPo->op_first;
        const OP * const right = OpSIBLING(left);
@@ -9506,9 +9498,15 @@ Perl_ck_bitop(pTHX_ OP *o)
            (OP_IS_NUMCOMPARE(right->op_type) &&
                (right->op_flags & OPf_PARENS) == 0))
            Perl_ck_warner(aTHX_ packWARN(WARN_PRECEDENCE),
-                          "Possible precedence problem on bitwise %c operator",
-                          o->op_type == OP_BIT_OR ? '|'
-                          : o->op_type == OP_BIT_AND ? '&' : '^'
+                         "Possible precedence problem on bitwise %s operator",
+                          o->op_type ==  OP_BIT_OR
+                        ||o->op_type == OP_NBIT_OR  ? "|"
+                       :  o->op_type ==  OP_BIT_AND
+                        ||o->op_type == OP_NBIT_AND ? "&"
+                       :  o->op_type ==  OP_BIT_XOR
+                        ||o->op_type == OP_NBIT_XOR ? "^"
+                       :  o->op_type == OP_SBIT_OR  ? "|."
+                       :  o->op_type == OP_SBIT_AND ? "&." : "^."
                           );
     }
     return o;
@@ -9671,7 +9669,7 @@ Perl_ck_eval(pTHX_ OP *o)
        SVOP * const kid = (SVOP*)cUNOPo->op_first;
        assert(kid);
 
-       if (kid->op_type == OP_LINESEQ || kid->op_type == OP_STUB) {
+       if (o->op_type == OP_ENTERTRY) {
            LOGOP *enter;
 
             /* cut whole sibling chain free from o */
@@ -9878,8 +9876,10 @@ Perl_ck_ftst(pTHX_ OP *o)
        }
        if ((PL_hints & HINT_FILETEST_ACCESS) && OP_IS_FILETEST_ACCESS(o->op_type))
            o->op_private |= OPpFT_ACCESS;
-       if (PL_check[kidtype] == Perl_ck_ftst
-               && kidtype != OP_STAT && kidtype != OP_LSTAT) {
+       if (type != OP_STAT && type != OP_LSTAT
+            && PL_check[kidtype] == Perl_ck_ftst
+            && kidtype != OP_STAT && kidtype != OP_LSTAT
+        ) {
            o->op_private |= OPpFT_STACKED;
            kid->op_private |= OPpFT_STACKING;
            if (kidtype == OP_FTTTY && (
@@ -11894,7 +11894,7 @@ Perl_ck_subr(pTHX_ OP *o)
            }
            /* make class name a shared cow string to speedup method calls */
            /* constant string might be replaced with object, f.e. bigint */
-           if (const_class && !SvROK(*const_class)) {
+           if (const_class && SvPOK(*const_class)) {
                STRLEN len;
                const char* str = SvPV(*const_class, len);
                if (len) {
@@ -12893,7 +12893,8 @@ Perl_rpeep(pTHX_ OP *o)
                  * update the code accordingly. This applies to all the
                  * other ASSUMEs in the block of code too.
                  */
-                ASSUME(!(o2->op_flags & ~(OPf_WANT|OPf_MOD|OPf_SPECIAL)));
+                ASSUME(!(o2->op_flags &
+                            ~(OPf_WANT|OPf_MOD|OPf_PARENS|OPf_SPECIAL)));
                 ASSUME(!(o2->op_private & ~OPpEARLY_CV));
 
                 o2 = o2->op_next;
index 5d910fd..ef5f432 100644 (file)
--- a/opcode.h
+++ b/opcode.h
@@ -31,6 +31,8 @@
 #define Perl_pp_sgt Perl_pp_sle
 #define Perl_pp_sge Perl_pp_sle
 #define Perl_pp_bit_xor Perl_pp_bit_or
+#define Perl_pp_nbit_xor Perl_pp_nbit_or
+#define Perl_pp_sbit_xor Perl_pp_sbit_or
 #define Perl_pp_cos Perl_pp_sin
 #define Perl_pp_exp Perl_pp_sin
 #define Perl_pp_log Perl_pp_sin
@@ -243,10 +245,18 @@ EXTCONST char* const PL_op_name[] = {
        "bit_and",
        "bit_xor",
        "bit_or",
+       "nbit_and",
+       "nbit_xor",
+       "nbit_or",
+       "sbit_and",
+       "sbit_xor",
+       "sbit_or",
        "negate",
        "i_negate",
        "not",
        "complement",
+       "ncomplement",
+       "scomplement",
        "smartmatch",
        "atan2",
        "sin",
@@ -639,10 +649,18 @@ EXTCONST char* const PL_op_desc[] = {
        "bitwise and (&)",
        "bitwise xor (^)",
        "bitwise or (|)",
+       "numeric bitiwse and (&)",
+       "numeric bitwise xor (^)",
+       "numeric bitwise or (|)",
+       "string bitiwse and (&)",
+       "string bitwise xor (^)",
+       "string bitwise or (|)",
        "negation (-)",
        "integer negation (-)",
        "not",
        "1's complement (~)",
+       "numeric 1's complement (~)",
+       "string 1's complement (~)",
        "smart match",
        "atan2",
        "sin",
@@ -1049,10 +1067,18 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
        Perl_pp_bit_and,
        Perl_pp_bit_xor,        /* implemented by Perl_pp_bit_or */
        Perl_pp_bit_or,
+       Perl_pp_nbit_and,
+       Perl_pp_nbit_xor,       /* implemented by Perl_pp_nbit_or */
+       Perl_pp_nbit_or,
+       Perl_pp_sbit_and,
+       Perl_pp_sbit_xor,       /* implemented by Perl_pp_sbit_or */
+       Perl_pp_sbit_or,
        Perl_pp_negate,
        Perl_pp_i_negate,
        Perl_pp_not,
        Perl_pp_complement,
+       Perl_pp_ncomplement,
+       Perl_pp_scomplement,
        Perl_pp_smartmatch,
        Perl_pp_atan2,
        Perl_pp_sin,
@@ -1455,10 +1481,18 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
        Perl_ck_bitop,          /* bit_and */
        Perl_ck_bitop,          /* bit_xor */
        Perl_ck_bitop,          /* bit_or */
+       Perl_ck_bitop,          /* nbit_and */
+       Perl_ck_bitop,          /* nbit_xor */
+       Perl_ck_bitop,          /* nbit_or */
+       Perl_ck_bitop,          /* sbit_and */
+       Perl_ck_bitop,          /* sbit_xor */
+       Perl_ck_bitop,          /* sbit_or */
        Perl_ck_null,           /* negate */
        Perl_ck_null,           /* i_negate */
        Perl_ck_null,           /* not */
        Perl_ck_bitop,          /* complement */
+       Perl_ck_bitop,          /* ncomplement */
+       Perl_ck_bitop,          /* scomplement */
        Perl_ck_smartmatch,     /* smartmatch */
        Perl_ck_fun,            /* atan2 */
        Perl_ck_fun,            /* sin */
@@ -1855,10 +1889,18 @@ EXTCONST U32 PL_opargs[] = {
        0x0001120e,     /* bit_and */
        0x0001120e,     /* bit_xor */
        0x0001120e,     /* bit_or */
+       0x0001121e,     /* nbit_and */
+       0x0001121e,     /* nbit_xor */
+       0x0001121e,     /* nbit_or */
+       0x0001120e,     /* sbit_and */
+       0x0001120e,     /* sbit_xor */
+       0x0001120e,     /* sbit_or */
        0x0000112e,     /* negate */
        0x0000110e,     /* i_negate */
        0x00001106,     /* not */
        0x0000111e,     /* complement */
+       0x0000111e,     /* ncomplement */
+       0x0000111e,     /* scomplement */
        0x00000204,     /* smartmatch */
        0x0001141e,     /* atan2 */
        0x00009b9e,     /* sin */
@@ -2485,10 +2527,18 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
       12, /* bit_and */
       12, /* bit_xor */
       12, /* bit_or */
+      74, /* nbit_and */
+      74, /* nbit_xor */
+      74, /* nbit_or */
+      12, /* sbit_and */
+      12, /* sbit_xor */
+      12, /* sbit_or */
        0, /* negate */
        0, /* i_negate */
        0, /* not */
       72, /* complement */
+      72, /* ncomplement */
+      72, /* scomplement */
       12, /* smartmatch */
       79, /* atan2 */
       72, /* sin */
@@ -2552,45 +2602,45 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
      128, /* sort */
      135, /* reverse */
      137, /* grepstart */
-     138, /* grepwhile */
+     137, /* grepwhile */
      137, /* mapstart */
-     138, /* mapwhile */
+     137, /* mapwhile */
        0, /* range */
-     140, /* flip */
-     140, /* flop */
+     139, /* flip */
+     139, /* flop */
        0, /* and */
        0, /* or */
       12, /* xor */
        0, /* dor */
-     142, /* cond_expr */
+     141, /* cond_expr */
        0, /* andassign */
        0, /* orassign */
        0, /* dorassign */
        0, /* method */
-     144, /* entersub */
-     151, /* leavesub */
-     151, /* leavesublv */
-     153, /* caller */
+     143, /* entersub */
+     150, /* leavesub */
+     150, /* leavesublv */
+     152, /* caller */
       48, /* warn */
       48, /* die */
       48, /* reset */
       -1, /* lineseq */
-     155, /* nextstate */
-     155, /* dbstate */
+     154, /* nextstate */
+     154, /* dbstate */
       -1, /* unstack */
       -1, /* enter */
-     156, /* leave */
+     155, /* leave */
       -1, /* scope */
-     158, /* enteriter */
-     162, /* iter */
+     157, /* enteriter */
+     161, /* iter */
       -1, /* enterloop */
-     163, /* leaveloop */
+     162, /* leaveloop */
       -1, /* return */
-     165, /* last */
-     165, /* next */
-     165, /* redo */
-     165, /* dump */
-     165, /* goto */
+     164, /* last */
+     164, /* next */
+     164, /* redo */
+     164, /* dump */
+     164, /* goto */
       48, /* exit */
        0, /* method_named */
        0, /* method_super */
@@ -2602,7 +2652,7 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
        0, /* leavewhen */
       -1, /* break */
       -1, /* continue */
-     167, /* open */
+     166, /* open */
       48, /* close */
       48, /* pipe_op */
       48, /* fileno */
@@ -2618,7 +2668,7 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
       48, /* getc */
       48, /* read */
       48, /* enterwrite */
-     151, /* leavewrite */
+     150, /* leavewrite */
       -1, /* prtf */
       -1, /* print */
       -1, /* say */
@@ -2648,33 +2698,33 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
        0, /* getpeername */
        0, /* lstat */
        0, /* stat */
-     172, /* ftrread */
-     172, /* ftrwrite */
-     172, /* ftrexec */
-     172, /* fteread */
-     172, /* ftewrite */
-     172, /* fteexec */
-     177, /* ftis */
-     177, /* ftsize */
-     177, /* ftmtime */
-     177, /* ftatime */
-     177, /* ftctime */
-     177, /* ftrowned */
-     177, /* fteowned */
-     177, /* ftzero */
-     177, /* ftsock */
-     177, /* ftchr */
-     177, /* ftblk */
-     177, /* ftfile */
-     177, /* ftdir */
-     177, /* ftpipe */
-     177, /* ftsuid */
-     177, /* ftsgid */
-     177, /* ftsvtx */
-     177, /* ftlink */
-     177, /* fttty */
-     177, /* fttext */
-     177, /* ftbinary */
+     171, /* ftrread */
+     171, /* ftrwrite */
+     171, /* ftrexec */
+     171, /* fteread */
+     171, /* ftewrite */
+     171, /* fteexec */
+     176, /* ftis */
+     176, /* ftsize */
+     176, /* ftmtime */
+     176, /* ftatime */
+     176, /* ftctime */
+     176, /* ftrowned */
+     176, /* fteowned */
+     176, /* ftzero */
+     176, /* ftsock */
+     176, /* ftchr */
+     176, /* ftblk */
+     176, /* ftfile */
+     176, /* ftdir */
+     176, /* ftpipe */
+     176, /* ftsuid */
+     176, /* ftsgid */
+     176, /* ftsvtx */
+     176, /* ftlink */
+     176, /* fttty */
+     176, /* fttext */
+     176, /* ftbinary */
       79, /* chdir */
       79, /* chown */
       72, /* chroot */
@@ -2694,17 +2744,17 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
        0, /* rewinddir */
        0, /* closedir */
       -1, /* fork */
-     181, /* wait */
+     180, /* wait */
       79, /* waitpid */
       79, /* system */
       79, /* exec */
       79, /* kill */
-     181, /* getppid */
+     180, /* getppid */
       79, /* getpgrp */
       79, /* setpgrp */
       79, /* getpriority */
       79, /* setpriority */
-     181, /* time */
+     180, /* time */
       -1, /* tms */
        0, /* localtime */
       48, /* gmtime */
@@ -2724,8 +2774,8 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
        0, /* require */
        0, /* dofile */
       -1, /* hintseval */
-     182, /* entereval */
-     151, /* leaveeval */
+     181, /* entereval */
+     150, /* leaveeval */
        0, /* entertry */
       -1, /* leavetry */
        0, /* ghbyname */
@@ -2766,17 +2816,17 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
        0, /* reach */
       39, /* rkeys */
        0, /* rvalues */
-     188, /* coreargs */
+     187, /* coreargs */
        3, /* runcv */
        0, /* fc */
       -1, /* padcv */
       -1, /* introcv */
       -1, /* clonecv */
-     192, /* padrange */
-     194, /* refassign */
-     200, /* lvref */
-     206, /* lvrefslice */
-     207, /* lvavref */
+     191, /* padrange */
+     193, /* refassign */
+     199, /* lvref */
+     205, /* lvrefslice */
+     206, /* lvavref */
        0, /* anonconst */
 
 };
@@ -2802,7 +2852,7 @@ EXTCONST U16  PL_op_private_bitdefs[] = {
     0x03b8, 0x1570, 0x3c8c, 0x3748, 0x2da5, /* const */
     0x29dc, 0x2ef9, /* gvsv */
     0x13d5, /* gv */
-    0x0067, /* gelem, lt, i_lt, gt, i_gt, le, i_le, ge, i_ge, eq, i_eq, ne, i_ne, ncmp, slt, sgt, sle, sge, seq, sne, bit_and, bit_xor, bit_or, smartmatch, lslice, xor */
+    0x0067, /* gelem, lt, i_lt, gt, i_gt, le, i_le, ge, i_ge, eq, i_eq, ne, i_ne, ncmp, slt, sgt, sle, sge, seq, sne, bit_and, bit_xor, bit_or, sbit_and, sbit_xor, sbit_or, smartmatch, lslice, xor */
     0x29dc, 0x3bd8, 0x0257, /* padsv */
     0x29dc, 0x3bd8, 0x2acc, 0x38c9, /* padav */
     0x29dc, 0x3bd8, 0x0534, 0x05d0, 0x2acc, 0x38c9, /* padhv */
@@ -2818,8 +2868,8 @@ EXTCONST U16  PL_op_private_bitdefs[] = {
     0x0c9c, 0x1dd8, 0x0834, 0x3ef0, 0x3a0c, 0x2168, 0x01e4, 0x0141, /* trans, transr */
     0x0adc, 0x0458, 0x0067, /* sassign */
     0x0758, 0x2acc, 0x0067, /* aassign */
-    0x3ef0, 0x0003, /* chomp, schomp, complement, sin, cos, exp, log, sqrt, int, hex, oct, abs, length, ord, chr, chroot, rmdir */
-    0x3ef0, 0x0067, /* pow, multiply, i_multiply, divide, i_divide, modulo, i_modulo, add, i_add, subtract, i_subtract, concat, left_shift, right_shift, i_ncmp, scmp */
+    0x3ef0, 0x0003, /* chomp, schomp, complement, ncomplement, scomplement, sin, cos, exp, log, sqrt, int, hex, oct, abs, length, ord, chr, chroot, rmdir */
+    0x3ef0, 0x0067, /* pow, multiply, i_multiply, divide, i_divide, modulo, i_modulo, add, i_add, subtract, i_subtract, concat, left_shift, right_shift, i_ncmp, scmp, nbit_and, nbit_xor, nbit_or */
     0x1058, 0x3ef0, 0x0067, /* repeat */
     0x3ef0, 0x012f, /* stringify, atan2, rand, srand, index, rindex, crypt, push, unshift, flock, chdir, chown, unlink, chmod, utime, rename, link, symlink, mkdir, waitpid, system, exec, kill, getpgrp, setpgrp, getpriority, setpriority, sleep */
     0x33f0, 0x2acc, 0x00cb, /* substr */
@@ -2837,8 +2887,7 @@ EXTCONST U16  PL_op_private_bitdefs[] = {
     0x29dc, 0x1e99, /* list */
     0x3af8, 0x3194, 0x0fb0, 0x254c, 0x34e8, 0x2644, 0x2e61, /* sort */
     0x254c, 0x0003, /* reverse */
-    0x1cc5, /* grepstart, mapstart */
-    0x1cc4, 0x0003, /* grepwhile, mapwhile */
+    0x1cc4, 0x0003, /* grepstart, grepwhile, mapstart, mapwhile */
     0x2778, 0x0003, /* flip, flop */
     0x29dc, 0x0003, /* cond_expr */
     0x29dc, 0x0b98, 0x0256, 0x028c, 0x3e48, 0x3c84, 0x2301, /* entersub */
@@ -2964,10 +3013,18 @@ EXTCONST U8 PL_op_private_valid[] = {
     /* BIT_AND    */ (OPpARG2_MASK),
     /* BIT_XOR    */ (OPpARG2_MASK),
     /* BIT_OR     */ (OPpARG2_MASK),
+    /* NBIT_AND   */ (OPpARG2_MASK|OPpTARGET_MY),
+    /* NBIT_XOR   */ (OPpARG2_MASK|OPpTARGET_MY),
+    /* NBIT_OR    */ (OPpARG2_MASK|OPpTARGET_MY),
+    /* SBIT_AND   */ (OPpARG2_MASK),
+    /* SBIT_XOR   */ (OPpARG2_MASK),
+    /* SBIT_OR    */ (OPpARG2_MASK),
     /* NEGATE     */ (OPpARG1_MASK),
     /* I_NEGATE   */ (OPpARG1_MASK),
     /* NOT        */ (OPpARG1_MASK),
     /* COMPLEMENT */ (OPpARG1_MASK|OPpTARGET_MY),
+    /* NCOMPLEMENT */ (OPpARG1_MASK|OPpTARGET_MY),
+    /* SCOMPLEMENT */ (OPpARG1_MASK|OPpTARGET_MY),
     /* SMARTMATCH */ (OPpARG2_MASK),
     /* ATAN2      */ (OPpARG4_MASK|OPpTARGET_MY),
     /* SIN        */ (OPpARG1_MASK|OPpTARGET_MY),
@@ -3030,9 +3087,9 @@ EXTCONST U8 PL_op_private_valid[] = {
     /* UNSHIFT    */ (OPpARG4_MASK|OPpTARGET_MY),
     /* SORT       */ (OPpSORT_NUMERIC|OPpSORT_INTEGER|OPpSORT_REVERSE|OPpSORT_INPLACE|OPpSORT_DESCEND|OPpSORT_QSORT|OPpSORT_STABLE),
     /* REVERSE    */ (OPpARG1_MASK|OPpREVERSE_INPLACE),
-    /* GREPSTART  */ (OPpGREP_LEX),
+    /* GREPSTART  */ (OPpARG1_MASK|OPpGREP_LEX),
     /* GREPWHILE  */ (OPpARG1_MASK|OPpGREP_LEX),
-    /* MAPSTART   */ (OPpGREP_LEX),
+    /* MAPSTART   */ (OPpARG1_MASK|OPpGREP_LEX),
     /* MAPWHILE   */ (OPpARG1_MASK|OPpGREP_LEX),
     /* RANGE      */ (OPpARG1_MASK),
     /* FLIP       */ (OPpARG1_MASK|OPpFLIP_LINENUM),
index 013350a..c225ac4 100644 (file)
--- a/opnames.h
+++ b/opnames.h
@@ -109,303 +109,311 @@ typedef enum opcode {
        OP_BIT_AND       = 92,
        OP_BIT_XOR       = 93,
        OP_BIT_OR        = 94,
-       OP_NEGATE        = 95,
-       OP_I_NEGATE      = 96,
-       OP_NOT           = 97,
-       OP_COMPLEMENT    = 98,
-       OP_SMARTMATCH    = 99,
-       OP_ATAN2         = 100,
-       OP_SIN           = 101,
-       OP_COS           = 102,
-       OP_RAND          = 103,
-       OP_SRAND         = 104,
-       OP_EXP           = 105,
-       OP_LOG           = 106,
-       OP_SQRT          = 107,
-       OP_INT           = 108,
-       OP_HEX           = 109,
-       OP_OCT           = 110,
-       OP_ABS           = 111,
-       OP_LENGTH        = 112,
-       OP_SUBSTR        = 113,
-       OP_VEC           = 114,
-       OP_INDEX         = 115,
-       OP_RINDEX        = 116,
-       OP_SPRINTF       = 117,
-       OP_FORMLINE      = 118,
-       OP_ORD           = 119,
-       OP_CHR           = 120,
-       OP_CRYPT         = 121,
-       OP_UCFIRST       = 122,
-       OP_LCFIRST       = 123,
-       OP_UC            = 124,
-       OP_LC            = 125,
-       OP_QUOTEMETA     = 126,
-       OP_RV2AV         = 127,
-       OP_AELEMFAST     = 128,
-       OP_AELEMFAST_LEX = 129,
-       OP_AELEM         = 130,
-       OP_ASLICE        = 131,
-       OP_KVASLICE      = 132,
-       OP_AEACH         = 133,
-       OP_AKEYS         = 134,
-       OP_AVALUES       = 135,
-       OP_EACH          = 136,
-       OP_VALUES        = 137,
-       OP_KEYS          = 138,
-       OP_DELETE        = 139,
-       OP_EXISTS        = 140,
-       OP_RV2HV         = 141,
-       OP_HELEM         = 142,
-       OP_HSLICE        = 143,
-       OP_KVHSLICE      = 144,
-       OP_MULTIDEREF    = 145,
-       OP_UNPACK        = 146,
-       OP_PACK          = 147,
-       OP_SPLIT         = 148,
-       OP_JOIN          = 149,
-       OP_LIST          = 150,
-       OP_LSLICE        = 151,
-       OP_ANONLIST      = 152,
-       OP_ANONHASH      = 153,
-       OP_SPLICE        = 154,
-       OP_PUSH          = 155,
-       OP_POP           = 156,
-       OP_SHIFT         = 157,
-       OP_UNSHIFT       = 158,
-       OP_SORT          = 159,
-       OP_REVERSE       = 160,
-       OP_GREPSTART     = 161,
-       OP_GREPWHILE     = 162,
-       OP_MAPSTART      = 163,
-       OP_MAPWHILE      = 164,
-       OP_RANGE         = 165,
-       OP_FLIP          = 166,
-       OP_FLOP          = 167,
-       OP_AND           = 168,
-       OP_OR            = 169,
-       OP_XOR           = 170,
-       OP_DOR           = 171,
-       OP_COND_EXPR     = 172,
-       OP_ANDASSIGN     = 173,
-       OP_ORASSIGN      = 174,
-       OP_DORASSIGN     = 175,
-       OP_METHOD        = 176,
-       OP_ENTERSUB      = 177,
-       OP_LEAVESUB      = 178,
-       OP_LEAVESUBLV    = 179,
-       OP_CALLER        = 180,
-       OP_WARN          = 181,
-       OP_DIE           = 182,
-       OP_RESET         = 183,
-       OP_LINESEQ       = 184,
-       OP_NEXTSTATE     = 185,
-       OP_DBSTATE       = 186,
-       OP_UNSTACK       = 187,
-       OP_ENTER         = 188,
-       OP_LEAVE         = 189,
-       OP_SCOPE         = 190,
-       OP_ENTERITER     = 191,
-       OP_ITER          = 192,
-       OP_ENTERLOOP     = 193,
-       OP_LEAVELOOP     = 194,
-       OP_RETURN        = 195,
-       OP_LAST          = 196,
-       OP_NEXT          = 197,
-       OP_REDO          = 198,
-       OP_DUMP          = 199,
-       OP_GOTO          = 200,
-       OP_EXIT          = 201,
-       OP_METHOD_NAMED  = 202,
-       OP_METHOD_SUPER  = 203,
-       OP_METHOD_REDIR  = 204,
-       OP_METHOD_REDIR_SUPER = 205,
-       OP_ENTERGIVEN    = 206,
-       OP_LEAVEGIVEN    = 207,
-       OP_ENTERWHEN     = 208,
-       OP_LEAVEWHEN     = 209,
-       OP_BREAK         = 210,
-       OP_CONTINUE      = 211,
-       OP_OPEN          = 212,
-       OP_CLOSE         = 213,
-       OP_PIPE_OP       = 214,
-       OP_FILENO        = 215,
-       OP_UMASK         = 216,
-       OP_BINMODE       = 217,
-       OP_TIE           = 218,
-       OP_UNTIE         = 219,
-       OP_TIED          = 220,
-       OP_DBMOPEN       = 221,
-       OP_DBMCLOSE      = 222,
-       OP_SSELECT       = 223,
-       OP_SELECT        = 224,
-       OP_GETC          = 225,
-       OP_READ          = 226,
-       OP_ENTERWRITE    = 227,
-       OP_LEAVEWRITE    = 228,
-       OP_PRTF          = 229,
-       OP_PRINT         = 230,
-       OP_SAY           = 231,
-       OP_SYSOPEN       = 232,
-       OP_SYSSEEK       = 233,
-       OP_SYSREAD       = 234,
-       OP_SYSWRITE      = 235,
-       OP_EOF           = 236,
-       OP_TELL          = 237,
-       OP_SEEK          = 238,
-       OP_TRUNCATE      = 239,
-       OP_FCNTL         = 240,
-       OP_IOCTL         = 241,
-       OP_FLOCK         = 242,
-       OP_SEND          = 243,
-       OP_RECV          = 244,
-       OP_SOCKET        = 245,
-       OP_SOCKPAIR      = 246,
-       OP_BIND          = 247,
-       OP_CONNECT       = 248,
-       OP_LISTEN        = 249,
-       OP_ACCEPT        = 250,
-       OP_SHUTDOWN      = 251,
-       OP_GSOCKOPT      = 252,
-       OP_SSOCKOPT      = 253,
-       OP_GETSOCKNAME   = 254,
-       OP_GETPEERNAME   = 255,
-       OP_LSTAT         = 256,
-       OP_STAT          = 257,
-       OP_FTRREAD       = 258,
-       OP_FTRWRITE      = 259,
-       OP_FTREXEC       = 260,
-       OP_FTEREAD       = 261,
-       OP_FTEWRITE      = 262,
-       OP_FTEEXEC       = 263,
-       OP_FTIS          = 264,
-       OP_FTSIZE        = 265,
-       OP_FTMTIME       = 266,
-       OP_FTATIME       = 267,
-       OP_FTCTIME       = 268,
-       OP_FTROWNED      = 269,
-       OP_FTEOWNED      = 270,
-       OP_FTZERO        = 271,
-       OP_FTSOCK        = 272,
-       OP_FTCHR         = 273,
-       OP_FTBLK         = 274,
-       OP_FTFILE        = 275,
-       OP_FTDIR         = 276,
-       OP_FTPIPE        = 277,
-       OP_FTSUID        = 278,
-       OP_FTSGID        = 279,
-       OP_FTSVTX        = 280,
-       OP_FTLINK        = 281,
-       OP_FTTTY         = 282,
-       OP_FTTEXT        = 283,
-       OP_FTBINARY      = 284,
-       OP_CHDIR         = 285,
-       OP_CHOWN         = 286,
-       OP_CHROOT        = 287,
-       OP_UNLINK        = 288,
-       OP_CHMOD         = 289,
-       OP_UTIME         = 290,
-       OP_RENAME        = 291,
-       OP_LINK          = 292,
-       OP_SYMLINK       = 293,
-       OP_READLINK      = 294,
-       OP_MKDIR         = 295,
-       OP_RMDIR         = 296,
-       OP_OPEN_DIR      = 297,
-       OP_READDIR       = 298,
-       OP_TELLDIR       = 299,
-       OP_SEEKDIR       = 300,
-       OP_REWINDDIR     = 301,
-       OP_CLOSEDIR      = 302,
-       OP_FORK          = 303,
-       OP_WAIT          = 304,
-       OP_WAITPID       = 305,
-       OP_SYSTEM        = 306,
-       OP_EXEC          = 307,
-       OP_KILL          = 308,
-       OP_GETPPID       = 309,
-       OP_GETPGRP       = 310,
-       OP_SETPGRP       = 311,
-       OP_GETPRIORITY   = 312,
-       OP_SETPRIORITY   = 313,
-       OP_TIME          = 314,
-       OP_TMS           = 315,
-       OP_LOCALTIME     = 316,
-       OP_GMTIME        = 317,
-       OP_ALARM         = 318,
-       OP_SLEEP         = 319,
-       OP_SHMGET        = 320,
-       OP_SHMCTL        = 321,
-       OP_SHMREAD       = 322,
-       OP_SHMWRITE      = 323,
-       OP_MSGGET        = 324,
-       OP_MSGCTL        = 325,
-       OP_MSGSND        = 326,
-       OP_MSGRCV        = 327,
-       OP_SEMOP         = 328,
-       OP_SEMGET        = 329,
-       OP_SEMCTL        = 330,
-       OP_REQUIRE       = 331,
-       OP_DOFILE        = 332,
-       OP_HINTSEVAL     = 333,
-       OP_ENTEREVAL     = 334,
-       OP_LEAVEEVAL     = 335,
-       OP_ENTERTRY      = 336,
-       OP_LEAVETRY      = 337,
-       OP_GHBYNAME      = 338,
-       OP_GHBYADDR      = 339,
-       OP_GHOSTENT      = 340,
-       OP_GNBYNAME      = 341,
-       OP_GNBYADDR      = 342,
-       OP_GNETENT       = 343,
-       OP_GPBYNAME      = 344,
-       OP_GPBYNUMBER    = 345,
-       OP_GPROTOENT     = 346,
-       OP_GSBYNAME      = 347,
-       OP_GSBYPORT      = 348,
-       OP_GSERVENT      = 349,
-       OP_SHOSTENT      = 350,
-       OP_SNETENT       = 351,
-       OP_SPROTOENT     = 352,
-       OP_SSERVENT      = 353,
-       OP_EHOSTENT      = 354,
-       OP_ENETENT       = 355,
-       OP_EPROTOENT     = 356,
-       OP_ESERVENT      = 357,
-       OP_GPWNAM        = 358,
-       OP_GPWUID        = 359,
-       OP_GPWENT        = 360,
-       OP_SPWENT        = 361,
-       OP_EPWENT        = 362,
-       OP_GGRNAM        = 363,
-       OP_GGRGID        = 364,
-       OP_GGRENT        = 365,
-       OP_SGRENT        = 366,
-       OP_EGRENT        = 367,
-       OP_GETLOGIN      = 368,
-       OP_SYSCALL       = 369,
-       OP_LOCK          = 370,
-       OP_ONCE          = 371,
-       OP_CUSTOM        = 372,
-       OP_REACH         = 373,
-       OP_RKEYS         = 374,
-       OP_RVALUES       = 375,
-       OP_COREARGS      = 376,
-       OP_RUNCV         = 377,
-       OP_FC            = 378,
-       OP_PADCV         = 379,
-       OP_INTROCV       = 380,
-       OP_CLONECV       = 381,
-       OP_PADRANGE      = 382,
-       OP_REFASSIGN     = 383,
-       OP_LVREF         = 384,
-       OP_LVREFSLICE    = 385,
-       OP_LVAVREF       = 386,
-       OP_ANONCONST     = 387,
+       OP_NBIT_AND      = 95,
+       OP_NBIT_XOR      = 96,
+       OP_NBIT_OR       = 97,
+       OP_SBIT_AND      = 98,
+       OP_SBIT_XOR      = 99,
+       OP_SBIT_OR       = 100,
+       OP_NEGATE        = 101,
+       OP_I_NEGATE      = 102,
+       OP_NOT           = 103,
+       OP_COMPLEMENT    = 104,
+       OP_NCOMPLEMENT   = 105,
+       OP_SCOMPLEMENT   = 106,
+       OP_SMARTMATCH    = 107,
+       OP_ATAN2         = 108,
+       OP_SIN           = 109,
+       OP_COS           = 110,
+       OP_RAND          = 111,
+       OP_SRAND         = 112,
+       OP_EXP           = 113,
+       OP_LOG           = 114,
+       OP_SQRT          = 115,
+       OP_INT           = 116,
+       OP_HEX           = 117,
+       OP_OCT           = 118,
+       OP_ABS           = 119,
+       OP_LENGTH        = 120,
+       OP_SUBSTR        = 121,
+       OP_VEC           = 122,
+       OP_INDEX         = 123,
+       OP_RINDEX        = 124,
+       OP_SPRINTF       = 125,
+       OP_FORMLINE      = 126,
+       OP_ORD           = 127,
+       OP_CHR           = 128,
+       OP_CRYPT         = 129,
+       OP_UCFIRST       = 130,
+       OP_LCFIRST       = 131,
+       OP_UC            = 132,
+       OP_LC            = 133,
+       OP_QUOTEMETA     = 134,
+       OP_RV2AV         = 135,
+       OP_AELEMFAST     = 136,
+       OP_AELEMFAST_LEX = 137,
+       OP_AELEM         = 138,
+       OP_ASLICE        = 139,
+       OP_KVASLICE      = 140,
+       OP_AEACH         = 141,
+       OP_AKEYS         = 142,
+       OP_AVALUES       = 143,
+       OP_EACH          = 144,
+       OP_VALUES        = 145,
+       OP_KEYS          = 146,
+       OP_DELETE        = 147,
+       OP_EXISTS        = 148,
+       OP_RV2HV         = 149,
+       OP_HELEM         = 150,
+       OP_HSLICE        = 151,
+       OP_KVHSLICE      = 152,
+       OP_MULTIDEREF    = 153,
+       OP_UNPACK        = 154,
+       OP_PACK          = 155,
+       OP_SPLIT         = 156,
+       OP_JOIN          = 157,
+       OP_LIST          = 158,
+       OP_LSLICE        = 159,
+       OP_ANONLIST      = 160,
+       OP_ANONHASH      = 161,
+       OP_SPLICE        = 162,
+       OP_PUSH          = 163,
+       OP_POP           = 164,
+       OP_SHIFT         = 165,
+       OP_UNSHIFT       = 166,
+       OP_SORT          = 167,
+       OP_REVERSE       = 168,
+       OP_GREPSTART     = 169,
+       OP_GREPWHILE     = 170,
+       OP_MAPSTART      = 171,
+       OP_MAPWHILE      = 172,
+       OP_RANGE         = 173,
+       OP_FLIP          = 174,
+       OP_FLOP          = 175,
+       OP_AND           = 176,
+       OP_OR            = 177,
+       OP_XOR           = 178,
+       OP_DOR           = 179,
+       OP_COND_EXPR     = 180,
+       OP_ANDASSIGN     = 181,
+       OP_ORASSIGN      = 182,
+       OP_DORASSIGN     = 183,
+       OP_METHOD        = 184,
+       OP_ENTERSUB      = 185,
+       OP_LEAVESUB      = 186,
+       OP_LEAVESUBLV    = 187,
+       OP_CALLER        = 188,
+       OP_WARN          = 189,
+       OP_DIE           = 190,
+       OP_RESET         = 191,
+       OP_LINESEQ       = 192,
+       OP_NEXTSTATE     = 193,
+       OP_DBSTATE       = 194,
+       OP_UNSTACK       = 195,
+       OP_ENTER         = 196,
+       OP_LEAVE         = 197,
+       OP_SCOPE         = 198,
+       OP_ENTERITER     = 199,
+       OP_ITER          = 200,
+       OP_ENTERLOOP     = 201,
+       OP_LEAVELOOP     = 202,
+       OP_RETURN        = 203,
+       OP_LAST          = 204,
+       OP_NEXT          = 205,
+       OP_REDO          = 206,
+       OP_DUMP          = 207,
+       OP_GOTO          = 208,
+       OP_EXIT          = 209,
+       OP_METHOD_NAMED  = 210,
+       OP_METHOD_SUPER  = 211,
+       OP_METHOD_REDIR  = 212,
+       OP_METHOD_REDIR_SUPER = 213,
+       OP_ENTERGIVEN    = 214,
+       OP_LEAVEGIVEN    = 215,
+       OP_ENTERWHEN     = 216,
+       OP_LEAVEWHEN     = 217,
+       OP_BREAK         = 218,
+       OP_CONTINUE      = 219,
+       OP_OPEN          = 220,
+       OP_CLOSE         = 221,
+       OP_PIPE_OP       = 222,
+       OP_FILENO        = 223,
+       OP_UMASK         = 224,
+       OP_BINMODE       = 225,
+       OP_TIE           = 226,
+       OP_UNTIE         = 227,
+       OP_TIED          = 228,
+       OP_DBMOPEN       = 229,
+       OP_DBMCLOSE      = 230,
+       OP_SSELECT       = 231,
+       OP_SELECT        = 232,
+       OP_GETC          = 233,
+       OP_READ          = 234,
+       OP_ENTERWRITE    = 235,
+       OP_LEAVEWRITE    = 236,
+       OP_PRTF          = 237,
+       OP_PRINT         = 238,
+       OP_SAY           = 239,
+       OP_SYSOPEN       = 240,
+       OP_SYSSEEK       = 241,
+       OP_SYSREAD       = 242,
+       OP_SYSWRITE      = 243,
+       OP_EOF           = 244,
+       OP_TELL          = 245,
+       OP_SEEK          = 246,
+       OP_TRUNCATE      = 247,
+       OP_FCNTL         = 248,
+       OP_IOCTL         = 249,
+       OP_FLOCK         = 250,
+       OP_SEND          = 251,
+       OP_RECV          = 252,
+       OP_SOCKET        = 253,
+       OP_SOCKPAIR      = 254,
+       OP_BIND          = 255,
+       OP_CONNECT       = 256,
+       OP_LISTEN        = 257,
+       OP_ACCEPT        = 258,
+       OP_SHUTDOWN      = 259,
+       OP_GSOCKOPT      = 260,
+       OP_SSOCKOPT      = 261,
+       OP_GETSOCKNAME   = 262,
+       OP_GETPEERNAME   = 263,
+       OP_LSTAT         = 264,
+       OP_STAT          = 265,
+       OP_FTRREAD       = 266,
+       OP_FTRWRITE      = 267,
+       OP_FTREXEC       = 268,
+       OP_FTEREAD       = 269,
+       OP_FTEWRITE      = 270,
+       OP_FTEEXEC       = 271,
+       OP_FTIS          = 272,
+       OP_FTSIZE        = 273,
+       OP_FTMTIME       = 274,
+       OP_FTATIME       = 275,
+       OP_FTCTIME       = 276,
+       OP_FTROWNED      = 277,
+       OP_FTEOWNED      = 278,
+       OP_FTZERO        = 279,
+       OP_FTSOCK        = 280,
+       OP_FTCHR         = 281,
+       OP_FTBLK         = 282,
+       OP_FTFILE        = 283,
+       OP_FTDIR         = 284,
+       OP_FTPIPE        = 285,
+       OP_FTSUID        = 286,
+       OP_FTSGID        = 287,
+       OP_FTSVTX        = 288,
+       OP_FTLINK        = 289,
+       OP_FTTTY         = 290,
+       OP_FTTEXT        = 291,
+       OP_FTBINARY      = 292,
+       OP_CHDIR         = 293,
+       OP_CHOWN         = 294,
+       OP_CHROOT        = 295,
+       OP_UNLINK        = 296,
+       OP_CHMOD         = 297,
+       OP_UTIME         = 298,
+       OP_RENAME        = 299,
+       OP_LINK          = 300,
+       OP_SYMLINK       = 301,
+       OP_READLINK      = 302,
+       OP_MKDIR         = 303,
+       OP_RMDIR         = 304,
+       OP_OPEN_DIR      = 305,
+       OP_READDIR       = 306,
+       OP_TELLDIR       = 307,
+       OP_SEEKDIR       = 308,
+       OP_REWINDDIR     = 309,
+       OP_CLOSEDIR      = 310,
+       OP_FORK          = 311,
+       OP_WAIT          = 312,
+       OP_WAITPID       = 313,
+       OP_SYSTEM        = 314,
+       OP_EXEC          = 315,
+       OP_KILL          = 316,
+       OP_GETPPID       = 317,
+       OP_GETPGRP       = 318,
+       OP_SETPGRP       = 319,
+       OP_GETPRIORITY   = 320,
+       OP_SETPRIORITY   = 321,
+       OP_TIME          = 322,
+       OP_TMS           = 323,
+       OP_LOCALTIME     = 324,
+       OP_GMTIME        = 325,
+       OP_ALARM         = 326,
+       OP_SLEEP         = 327,
+       OP_SHMGET        = 328,
+       OP_SHMCTL        = 329,
+       OP_SHMREAD       = 330,
+       OP_SHMWRITE      = 331,
+       OP_MSGGET        = 332,
+       OP_MSGCTL        = 333,
+       OP_MSGSND        = 334,
+       OP_MSGRCV        = 335,
+       OP_SEMOP         = 336,
+       OP_SEMGET        = 337,
+       OP_SEMCTL        = 338,
+       OP_REQUIRE       = 339,
+       OP_DOFILE        = 340,
+       OP_HINTSEVAL     = 341,
+       OP_ENTEREVAL     = 342,
+       OP_LEAVEEVAL     = 343,
+       OP_ENTERTRY      = 344,
+       OP_LEAVETRY      = 345,
+       OP_GHBYNAME      = 346,
+       OP_GHBYADDR      = 347,
+       OP_GHOSTENT      = 348,
+       OP_GNBYNAME      = 349,
+       OP_GNBYADDR      = 350,
+       OP_GNETENT       = 351,
+       OP_GPBYNAME      = 352,
+       OP_GPBYNUMBER    = 353,
+       OP_GPROTOENT     = 354,
+       OP_GSBYNAME      = 355,
+       OP_GSBYPORT      = 356,
+       OP_GSERVENT      = 357,
+       OP_SHOSTENT      = 358,
+       OP_SNETENT       = 359,
+       OP_SPROTOENT     = 360,
+       OP_SSERVENT      = 361,
+       OP_EHOSTENT      = 362,
+       OP_ENETENT       = 363,
+       OP_EPROTOENT     = 364,
+       OP_ESERVENT      = 365,
+       OP_GPWNAM        = 366,
+       OP_GPWUID        = 367,
+       OP_GPWENT        = 368,
+       OP_SPWENT        = 369,
+       OP_EPWENT        = 370,
+       OP_GGRNAM        = 371,
+       OP_GGRGID        = 372,
+       OP_GGRENT        = 373,
+       OP_SGRENT        = 374,
+       OP_EGRENT        = 375,
+       OP_GETLOGIN      = 376,
+       OP_SYSCALL       = 377,
+       OP_LOCK          = 378,
+       OP_ONCE          = 379,
+       OP_CUSTOM        = 380,
+       OP_REACH         = 381,
+       OP_RKEYS         = 382,
+       OP_RVALUES       = 383,
+       OP_COREARGS      = 384,
+       OP_RUNCV         = 385,
+       OP_FC            = 386,
+       OP_PADCV         = 387,
+       OP_INTROCV       = 388,
+       OP_CLONECV       = 389,
+       OP_PADRANGE      = 390,
+       OP_REFASSIGN     = 391,
+       OP_LVREF         = 392,
+       OP_LVREFSLICE    = 393,
+       OP_LVAVREF       = 394,
+       OP_ANONCONST     = 395,
        OP_max          
 } opcode;
 
-#define MAXO 388
+#define MAXO 396
 #define OP_FREED MAXO
 
 /* the OP_IS_* macros are optimized to a simple range check because
@@ -428,4 +436,7 @@ typedef enum opcode {
 #define OP_IS_DIRHOP(op)       \
        ((op) >= OP_READDIR && (op) <= OP_CLOSEDIR)
 
+#define OP_IS_INFIX_BIT(op)    \
+       ((op) >= OP_BIT_AND && (op) <= OP_SBIT_OR)
+
 /* ex: set ro: */
index cd28df4..3cf64c7 100644 (file)
@@ -65,13 +65,20 @@ static const U8 PL_AMG_namelens[NofAMmeth] = {
     4,
     2,
     3,
+    3,
+    4,
     2,
     3,
+    3,
+    4,
     2,
     3,
+    3,
+    4,
     4,
     4,
     2,
+    3,
     6,
     4,
     4,
@@ -141,13 +148,20 @@ static const char * const PL_AMG_names[NofAMmeth] = {
     "(>>=",            /* rshift_ass */
     "(&",              /* band       */
     "(&=",             /* band_ass   */
+    "(&.",             /* sband      */
+    "(&.=",            /* sband_ass  */
     "(|",              /* bor        */
     "(|=",             /* bor_ass    */
+    "(|.",             /* sbor       */
+    "(|.=",            /* sbor_ass   */
     "(^",              /* bxor       */
     "(^=",             /* bxor_ass   */
+    "(^.",             /* sbxor      */
+    "(^.=",            /* sbxor_ass  */
     "(<=>",            /* ncmp       */
     "(cmp",            /* scmp       */
     "(~",              /* compl      */
+    "(~.",             /* scompl     */
     "(atan2",          /* atan2      */
     "(cos",            /* cos        */
     "(sin",            /* sin        */
index 1628ac0..50e7660 100644 (file)
@@ -62,26 +62,33 @@ enum {
     rshift_ass_amg,    /* 0x2d >>=      */
     band_amg,          /* 0x2e &        */
     band_ass_amg,      /* 0x2f &=       */
-    bor_amg,           /* 0x30 |        */
-    bor_ass_amg,       /* 0x31 |=       */
-    bxor_amg,          /* 0x32 ^        */
-    bxor_ass_amg,      /* 0x33 ^=       */
-    ncmp_amg,          /* 0x34 <=>      */
-    scmp_amg,          /* 0x35 cmp      */
-    compl_amg,         /* 0x36 ~        */
-    atan2_amg,         /* 0x37 atan2    */
-    cos_amg,           /* 0x38 cos      */
-    sin_amg,           /* 0x39 sin      */
-    exp_amg,           /* 0x3a exp      */
-    log_amg,           /* 0x3b log      */
-    sqrt_amg,          /* 0x3c sqrt     */
-    repeat_amg,                /* 0x3d x        */
-    repeat_ass_amg,    /* 0x3e x=       */
-    concat_amg,                /* 0x3f .        */
-    concat_ass_amg,    /* 0x40 .=       */
-    smart_amg,         /* 0x41 ~~       */
-    ftest_amg,         /* 0x42 -X       */
-    regexp_amg,                /* 0x43 qr       */
+    sband_amg,         /* 0x30 &.       */
+    sband_ass_amg,     /* 0x31 &.=      */
+    bor_amg,           /* 0x32 |        */
+    bor_ass_amg,       /* 0x33 |=       */
+    sbor_amg,          /* 0x34 |.       */
+    sbor_ass_amg,      /* 0x35 |.=      */
+    bxor_amg,          /* 0x36 ^        */
+    bxor_ass_amg,      /* 0x37 ^=       */
+    sbxor_amg,         /* 0x38 ^.       */
+    sbxor_ass_amg,     /* 0x39 ^.=      */
+    ncmp_amg,          /* 0x3a <=>      */
+    scmp_amg,          /* 0x3b cmp      */
+    compl_amg,         /* 0x3c ~        */
+    scompl_amg,                /* 0x3d ~.       */
+    atan2_amg,         /* 0x3e atan2    */
+    cos_amg,           /* 0x3f cos      */
+    sin_amg,           /* 0x40 sin      */
+    exp_amg,           /* 0x41 exp      */
+    log_amg,           /* 0x42 log      */
+    sqrt_amg,          /* 0x43 sqrt     */
+    repeat_amg,                /* 0x44 x        */
+    repeat_ass_amg,    /* 0x45 x=       */
+    concat_amg,                /* 0x46 .        */
+    concat_ass_amg,    /* 0x47 .=       */
+    smart_amg,         /* 0x48 ~~       */
+    ftest_amg,         /* 0x49 -X       */
+    regexp_amg,                /* 0x4a qr       */
     max_amg_code
     /* Do not leave a trailing comma here.  C9X allows it, C89 doesn't. */
 };
index 57eee32..760d246 100644 (file)
@@ -15,7 +15,7 @@
 
 #define PERL_REVISION  5               /* age */
 #define PERL_VERSION   21              /* epoch */
-#define PERL_SUBVERSION        8               /* generation */
+#define PERL_SUBVERSION        9               /* generation */
 
 /* The following numbers describe the earliest compatible version of
    Perl ("compatibility" here being defined as sufficient binary/API
@@ -36,7 +36,7 @@
 */
 #define PERL_API_REVISION      5
 #define PERL_API_VERSION       21
-#define PERL_API_SUBVERSION    8
+#define PERL_API_SUBVERSION    9
 /*
    XXX Note:  The selection of non-default Configure options, such
    as -Duselonglong may invalidate these settings.  Currently, Configure
diff --git a/perl.c b/perl.c
index cda99ff..db079cd 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -33,7 +33,6 @@
 #include "perl.h"
 #include "patchlevel.h"                        /* for local_patches */
 #include "XSUB.h"
-#include "charclass_invlists.h"
 
 #ifdef NETWARE
 #include "nwutil.h"    
@@ -391,6 +390,9 @@ perl_construct(pTHXx)
     PL_XPosix_ptrs[_CC_VERTSPACE] = _new_invlist_C_array(VertSpace_invlist);
     PL_XPosix_ptrs[_CC_WORDCHAR] = _new_invlist_C_array(XPosixWord_invlist);
     PL_XPosix_ptrs[_CC_XDIGIT] = _new_invlist_C_array(XPosixXDigit_invlist);
+    PL_GCB_invlist = _new_invlist_C_array(Grapheme_Cluster_Break_invlist);
+    PL_SB_invlist = _new_invlist_C_array(Sentence_Break_invlist);
+    PL_WB_invlist = _new_invlist_C_array(Word_Break_invlist);
 
     ENTER;
 }
@@ -1060,6 +1062,9 @@ perl_destruct(pTHXx)
         SvREFCNT_dec(PL_XPosix_ptrs[i]);
         PL_XPosix_ptrs[i] = NULL;
     }
+    PL_GCB_invlist = NULL;
+    PL_SB_invlist = NULL;
+    PL_WB_invlist = NULL;
 
     if (!specialWARN(PL_compiling.cop_warnings))
        PerlMemShared_free(PL_compiling.cop_warnings);
diff --git a/perl.h b/perl.h
index ebfca35..b3b77ba 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -1226,6 +1226,7 @@ EXTERN_C char *crypt(const char *, const char *);
 #   define SS_IVCHAN           SS$_IVCHAN
 #   define SS_NORMAL           SS$_NORMAL
 #   define SS_NOPRIV           SS$_NOPRIV
+#   define SS_BUFFEROVF                SS$_BUFFEROVF
 #else
 #   define LIB_INVARG          0
 #   define RMS_DIR             0
@@ -1240,6 +1241,7 @@ EXTERN_C char *crypt(const char *, const char *);
 #   define SS_IVCHAN           0
 #   define SS_NORMAL           0
 #   define SS_NOPRIV           0
+#   define SS_BUFFEROVF                0
 #endif
 
 #ifdef WIN32
@@ -2683,6 +2685,7 @@ typedef struct padname PADNAME;
 #endif
 
 #include "handy.h"
+#include "charclass_invlists.h"
 
 #if defined(USE_LARGE_FILES) && !defined(NO_64_BIT_RAWIO)
 #   if LSEEKSIZE == 8 && !defined(USE_64_BIT_RAWIO)
@@ -3508,10 +3511,23 @@ typedef pthread_key_t   perl_key;
 /* placeholder */
 #endif
 
-#if defined(static_assert) || (defined(__cplusplus) && __cplusplus >= 201103L)
+/* STATIC_ASSERT_GLOBAL/STATIC_ASSERT_STMT are like assert(), but for compile
+   time invariants. That is, their argument must be a constant expression that
+   can be verified by the compiler. This expression can contain anything that's
+   known to the compiler, e.g. #define constants, enums, or sizeof (...). If
+   the expression evaluates to 0, compilation fails.
+   Because they generate no runtime code (i.e.  their use is "free"), they're
+   always active, even under non-DEBUGGING builds.
+   STATIC_ASSERT_GLOBAL expands to a declaration and is suitable for use at
+   file scope (outside of any function).
+   STATIC_ASSERT_STMT expands to a statement and is suitable for use inside a
+   function.
+*/
+#if (defined(static_assert) || (defined(__cplusplus) && __cplusplus >= 201103L)) && (!defined(__IBMC__) || __IBMC__ >= 1210)
 /* static_assert is a macro defined in <assert.h> in C11 or a compiler
    builtin in C++11.
 */
+/* IBM XL C V11 does not support _Static_assert, no matter what <assert.h> says */
 #  define STATIC_ASSERT_GLOBAL(COND) static_assert(COND, #COND)
 #else
 /* We use a bit-field instead of an array because gcc accepts
@@ -3539,7 +3555,7 @@ typedef pthread_key_t     perl_key;
    expression, which allows the compiler to generate better machine code.
    In a debug build, ASSUME(x) is a synonym for assert(x). ASSUME(0) means
    the control path is unreachable. In a for loop, ASSUME can be used to hint
-   that a loop will run atleast X times. ASSUME is based off MSVC's __assume
+   that a loop will run at least X times. ASSUME is based off MSVC's __assume
    intrinsic function, see its documents for more details.
 */
 
@@ -4254,14 +4270,6 @@ START_EXTERN_C
 END_EXTERN_C
 #endif
 
-#ifdef WIN32
-#  if !defined(NV_INF) && defined(HUGE_VAL)
-#    define NV_INF HUGE_VAL
-#  endif
-/* For WIN32 the best NV_NAN is the __PL_nan_u trick, see below.
- * There is no supported way of getting the NAN across all the crts. */
-#endif
-
 /* If you are thinking of using HUGE_VAL for infinity, or using
  * <math.h> functions to generate NV_INF (e.g. exp(1e9), log(-1.0)),
  * stop.  Neither will work portably: HUGE_VAL can be just DBL_MAX,
@@ -4321,9 +4329,11 @@ static const union { unsigned int __i; float __f; } __PL_inf_u =
 #   endif
 #   if !defined(NV_NAN) && defined(LDBL_QNAN)
 #       define NV_NAN LDBL_QNAN
+#       define NV_QNAN LDBL_QNAN
 #   endif
 #   if !defined(NV_NAN) && defined(LDBL_SNAN)
 #       define NV_NAN LDBL_SNAN
+#       define NV_SNAN LDBL_SNAN
 #   endif
 #endif
 #if !defined(NV_NAN) && defined(DBL_NAN)
@@ -4331,18 +4341,27 @@ static const union { unsigned int __i; float __f; } __PL_inf_u =
 #endif
 #if !defined(NV_NAN) && defined(DBL_QNAN)
 #  define NV_NAN (NV)DBL_QNAN
+#  define NV_QNAN DBL_QNAN
 #endif
 #if !defined(NV_NAN) && defined(DBL_SNAN)
 #  define NV_NAN (NV)DBL_SNAN
+#  define NV_SNAN DBL_SNAN
 #endif
 #if !defined(NV_NAN) && defined(NAN)
 #  define NV_NAN (NV)NAN
 #endif
 #if !defined(NV_NAN) && defined(QNAN)
 #  define NV_NAN (NV)QNAN
+#  define NV_QNAN QNAN
 #endif
 #if !defined(NV_NAN) && defined(SNAN)
 #  define NV_NAN (NV)SNAN
+#  define NV_SNAN SNAN
+#endif
+#if !defined(NV_NAN) && defined(I_SUNMATH)
+#  define NV_NAN (NV)quiet_nan()
+#  define NV_QNAN (NV)quiet_nan()
+#  define NV_SNAN (NV)signaling_nan()
 #endif
 #if !defined(NV_NAN)
 #  if INTSIZE == 4
@@ -6252,7 +6271,7 @@ int flock(int fd, int op);
                                              int).  value returned in pointed-
                                              to UV */
 #define IS_NUMBER_GREATER_THAN_UV_MAX 0x02 /* pointed to UV undefined */
-#define IS_NUMBER_NOT_INT            0x04 /* saw . or E notation */
+#define IS_NUMBER_NOT_INT            0x04 /* saw . or E notation or infnan */
 #define IS_NUMBER_NEG                0x08 /* leading minus sign */
 #define IS_NUMBER_INFINITY           0x10 /* this is big */
 #define IS_NUMBER_NAN                 0x20 /* this is not */
@@ -6411,6 +6430,84 @@ extern void moncontrol(int);
 #define PERL_PV_PRETTY_DUMP  PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_QUOTE
 #define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE|PERL_PV_ESCAPE_NONASCII
 
+#if DOUBLEKIND == DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN || \
+    DOUBLEKIND == DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN || \
+    DOUBLEKIND == DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
+#  define DOUBLE_LITTLE_ENDIAN
+#endif
+
+#if DOUBLEKIND == DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN || \
+    DOUBLEKIND == DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN || \
+    DOUBLEKIND == DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
+#  define DOUBLE_BIG_ENDIAN
+#endif
+
+#if DOUBLEKIND == DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE || \
+    DOUBLEKIND == DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE
+#  define DOUBLE_MIX_ENDIAN
+#endif
+
+/* All the basic IEEE formats have the implicit bit,
+ * except for the 80-bit extended formats, which will undef this. */
+#define NV_IMPLICIT_BIT
+
+#ifdef LONG_DOUBLEKIND
+
+#  if LONG_DOUBLEKIND == LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN || \
+      LONG_DOUBLEKIND == LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN || \
+      LONG_DOUBLEKIND == LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN
+#    define LONGDOUBLE_LITTLE_ENDIAN
+#  endif
+
+#  if LONG_DOUBLEKIND == LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN || \
+      LONG_DOUBLEKIND == LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN || \
+      LONG_DOUBLEKIND == LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN
+#    define LONGDOUBLE_BIG_ENDIAN
+#  endif
+
+#  if LONG_DOUBLEKIND == LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN || \
+      LONG_DOUBLEKIND == LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN
+#    define LONGDOUBLE_X86_80_BIT
+#    ifdef USE_LONG_DOUBLE
+#      undef NV_IMPLICIT_BIT
+#    endif
+#  endif
+
+#  if LONG_DOUBLEKIND == LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN || \
+      LONG_DOUBLEKIND == LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN
+#    define LONGDOUBLE_DOUBLEDOUBLE
+#  endif
+
+#endif /* LONG_DOUBLEKIND */
+
+#if NVSIZE == DOUBLESIZE
+#  ifdef DOUBLE_LITTLE_ENDIAN
+#    define NV_LITTLE_ENDIAN
+#  endif
+#  ifdef DOUBLE_BIG_ENDIAN
+#    define NV_BIG_ENDIAN
+#  endif
+#  ifdef DOUBLE_MIX_ENDIAN
+#    define NV_MIX_ENDIAN
+#  endif
+#elif NVSIZE == LONG_DOUBLESIZE
+#  ifdef LONGDOUBLE_LITTLE_ENDIAN
+#    define NV_LITTLE_ENDIAN
+#  endif
+#  ifdef LONGDOUBLE_BIG_ENDIAN
+#    define NV_BIG_ENDIAN
+#  endif
+#endif
+
+/* The implicit bit platforms include the implicit bit
+ * in the NV_MANT_DIG.  The bit isn't really there, however,
+ * so the real count of mantissa bits is one less. */
+#ifdef NV_IMPLICIT_BIT
+#  define NV_MANT_REAL_DIG (NV_MANT_DIG - 1)
+#else
+#  define NV_MANT_REAL_DIG (NV_MANT_DIG)
+#endif
+
 /*
 
    (KEEP THIS LAST IN perl.h!)
index 95b7482..e5ebfd9 100644 (file)
--- a/perlio.c
+++ b/perlio.c
@@ -849,7 +849,7 @@ XS(XS_io_MODIFY_SCALAR_ATTRIBUTES)
     XSRETURN(count);
 }
 
-#endif                          /* USE_ATTIBUTES_FOR_PERLIO */
+#endif                          /* USE_ATTRIBUTES_FOR_PERLIO */
 
 SV *
 PerlIO_tab_sv(pTHX_ PerlIO_funcs *tab)
index dc80d08..9398529 100644 (file)
--- a/perlio.h
+++ b/perlio.h
@@ -14,7 +14,7 @@
   Interface for perl to IO functions.
   There is a hierarchy of Configure determined #define controls:
    USE_STDIO   - forces PerlIO_xxx() to be #define-d onto stdio functions.
-                 This is used for x2p subdirectory and for conservative
+                 This is used for conservative
                  builds - "just like perl5.00X used to be".
                  This dominates over the others.
 
index 29e8176..7dcd394 100644 (file)
 #define PerlIO_close(f)                        PerlSIO_fclose(f)
 #define PerlIO_puts(f,s)               PerlSIO_fputs(s,f)
 #define PerlIO_putc(f,c)               PerlSIO_fputc(c,f)
-#if defined(VMS)
-#  if defined(__DECC)
+#if defined(__VMS)
      /* Unusual definition of ungetc() here to accommodate fast_sv_gets()'
       * belief that it can mix getc/ungetc with reads from stdio buffer */
+START_EXTERN_C
      int decc$ungetc(int __c, FILE *__stream);
+END_EXTERN_C
 #    define PerlIO_ungetc(f,c) ((c) == EOF ? EOF : \
             ((*(f) && !((*(f))->_flag & _IONBF) && \
             ((*(f))->_ptr > (*(f))->_base)) ? \
             ((*(f))->_cnt++, *(--(*(f))->_ptr) = (c)) : decc$ungetc(c,f)))
-#  else
-#    define PerlIO_ungetc(f,c)         ungetc(c,f)
-#  endif
-   /* Work around bug in DECCRTL/AXP (DECC v5.x) and some versions of old
-    * VAXCRTL which causes read from a pipe after EOF has been returned
-    * once to hang.
-    */
-#  define PerlIO_getc(f) \
-               (feof(f) ? EOF : getc(f))
-#  define PerlIO_read(f,buf,count) \
-               (feof(f) ? 0 : (SSize_t)fread(buf,1,count,f))
-#  define PerlIO_tell(f)               ftell(f)
 #else
-#  define PerlIO_getc(f)               PerlSIO_fgetc(f)
-#  define PerlIO_ungetc(f,c)           PerlSIO_ungetc(c,f)
-#  define PerlIO_read(f,buf,count)     (SSize_t)PerlSIO_fread(buf,1,count,f)
-#  define PerlIO_tell(f)               PerlSIO_ftell(f)
+#    define PerlIO_ungetc(f,c)         ungetc(c,f)
 #endif
+#define PerlIO_getc(f)         PerlSIO_fgetc(f)
+#define PerlIO_ungetc(f,c)             PerlSIO_ungetc(c,f)
+#define PerlIO_read(f,buf,count)       (SSize_t)PerlSIO_fread(buf,1,count,f)
+#define PerlIO_tell(f)         PerlSIO_ftell(f)
 #define PerlIO_eof(f)                  PerlSIO_feof(f)
 #define PerlIO_getname(f,b)            fgetname(f,b)
 #define PerlIO_error(f)                        PerlSIO_ferror(f)
 #define PerlIO_fileno(f)               PerlSIO_fileno(f)
 #define PerlIO_clearerr(f)             PerlSIO_clearerr(f)
 #define PerlIO_flush(f)                        PerlSIO_fflush(f)
-#if defined(VMS) && !defined(__DECC)
-/* Old VAXC RTL doesn't reset EOF on seek; Perl folk seem to expect this */
-#define PerlIO_seek(f,o,w)     (((f) && (*f) && ((*f)->_flag &= ~_IOEOF)),fseek(f,o,w))
-#else
-#  define PerlIO_seek(f,o,w)           PerlSIO_fseek(f,o,w)
-#endif
+#define PerlIO_seek(f,o,w)             PerlSIO_fseek(f,o,w)
 
 #define PerlIO_rewind(f)               PerlSIO_rewind(f)
 #define PerlIO_tmpfile()               PerlSIO_tmpfile()
index 5519ed2..70a1a4b 100644 (file)
--- a/perly.act
+++ b/perly.act
@@ -8,7 +8,7 @@ case 2:
 #line 115 "perly.y"
     {
                          parser->expect = XSTATE;
-                       }
+                       ;}
     break;
 
   case 3:
@@ -17,14 +17,14 @@ case 2:
                          newPROG(block_end((ps[(3) - (4)].val.ival),(ps[(4) - (4)].val.opval)));
                          PL_compiling.cop_seq = 0;
                          (yyval.ival) = 0;
-                       }
+                       ;}
     break;
 
   case 4:
 #line 125 "perly.y"
     {
                          parser->expect = XTERM;
-                       }
+                       ;}
     break;
 
   case 5:
@@ -32,14 +32,14 @@ case 2:
     {
                          PL_eval_root = (ps[(3) - (3)].val.opval);
                          (yyval.ival) = 0;
-                       }
+                       ;}
     break;
 
   case 6:
 #line 134 "perly.y"
     {
                          parser->expect = XBLOCK;
-                       }
+                       ;}
     break;
 
   case 7:
@@ -50,14 +50,14 @@ case 2:
                          (yyval.ival) = 0;
                          yyunlex();
                          parser->yychar = YYEOF;
-                       }
+                       ;}
     break;
 
   case 8:
 #line 146 "perly.y"
     {
                          parser->expect = XSTATE;
-                       }
+                       ;}
     break;
 
   case 9:
@@ -68,14 +68,14 @@ case 2:
                          (yyval.ival) = 0;
                          yyunlex();
                          parser->yychar = YYEOF;
-                       }
+                       ;}
     break;
 
   case 10:
 #line 158 "perly.y"
     {
                          parser->expect = XSTATE;
-                       }
+                       ;}
     break;
 
   case 11:
@@ -86,14 +86,14 @@ case 2:
                          (yyval.ival) = 0;
                          yyunlex();
                          parser->yychar = YYEOF;
-                       }
+                       ;}
     break;
 
   case 12:
 #line 170 "perly.y"
     {
                          parser->expect = XSTATE;
-                       }
+                       ;}
     break;
 
   case 13:
@@ -101,7 +101,7 @@ case 2:
     {
                          PL_eval_root = (ps[(3) - (3)].val.opval);
                          (yyval.ival) = 0;
-                       }
+                       ;}
     break;
 
   case 14:
@@ -109,7 +109,7 @@ case 2:
     { if (parser->copline > (line_t)(ps[(1) - (4)].val.ival))
                              parser->copline = (line_t)(ps[(1) - (4)].val.ival);
                          (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
-                       }
+                       ;}
     break;
 
   case 15:
@@ -117,13 +117,13 @@ case 2:
     { if (parser->copline > (line_t)(ps[(1) - (7)].val.ival))
                              parser->copline = (line_t)(ps[(1) - (7)].val.ival);
                          (yyval.opval) = block_end((ps[(2) - (7)].val.ival), (ps[(5) - (7)].val.opval));
-                       }
+                       ;}
     break;
 
   case 16:
 #line 197 "perly.y"
     { (yyval.ival) = block_start(TRUE);
-                         parser->parsed_sub = 0; }
+                         parser->parsed_sub = 0; ;}
     break;
 
   case 17:
@@ -131,18 +131,18 @@ case 2:
     { if (parser->copline > (line_t)(ps[(1) - (4)].val.ival))
                              parser->copline = (line_t)(ps[(1) - (4)].val.ival);
                          (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
-                       }
+                       ;}
     break;
 
   case 18:
 #line 209 "perly.y"
     { (yyval.ival) = block_start(FALSE);
-                         parser->parsed_sub = 0; }
+                         parser->parsed_sub = 0; ;}
     break;
 
   case 19:
 #line 215 "perly.y"
-    { (yyval.opval) = (OP*)NULL; }
+    { (yyval.opval) = (OP*)NULL; ;}
     break;
 
   case 20:
@@ -151,12 +151,12 @@ case 2:
                            PL_pad_reset_pending = TRUE;
                            if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
                                PL_hints |= HINT_BLOCK_SCOPE;
-                       }
+                       ;}
     break;
 
   case 21:
 #line 226 "perly.y"
-    { (yyval.opval) = (OP*)NULL; }
+    { (yyval.opval) = (OP*)NULL; ;}
     break;
 
   case 22:
@@ -165,38 +165,38 @@ case 2:
                            PL_pad_reset_pending = TRUE;
                            if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
                                PL_hints |= HINT_BLOCK_SCOPE;
-                       }
+                       ;}
     break;
 
   case 23:
 #line 237 "perly.y"
     {
                          (yyval.opval) = (ps[(1) - (1)].val.opval) ? newSTATEOP(0, NULL, (ps[(1) - (1)].val.opval)) : NULL;
-                       }
+                       ;}
     break;
 
   case 24:
 #line 241 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
     break;
 
   case 25:
 #line 245 "perly.y"
     {
                          (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[(1) - (2)].val.pval)[strlen((ps[(1) - (2)].val.pval))+1], (ps[(1) - (2)].val.pval), (ps[(2) - (2)].val.opval));
-                       }
+                       ;}
     break;
 
   case 26:
 #line 249 "perly.y"
     {
                          (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[(1) - (2)].val.pval)[strlen((ps[(1) - (2)].val.pval))+1], (ps[(1) - (2)].val.pval), (ps[(2) - (2)].val.opval));
-                       }
+                       ;}
     break;
 
   case 27:
 #line 256 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
     break;
 
   case 28:
@@ -209,7 +209,7 @@ case 2:
                              pad_add_weakref(fmtcv);
                          }
                          parser->parsed_sub = 1;
-                       }
+                       ;}
     break;
 
   case 29:
@@ -234,7 +234,7 @@ case 2:
                              CvCLONE_on(PL_compcv);
                          parser->in_my = 0;
                          parser->in_my_stash = NULL;
-                       }
+                       ;}
     break;
 
   case 30:
@@ -248,7 +248,7 @@ case 2:
                          (yyval.opval) = (OP*)NULL;
                          intro_my();
                          parser->parsed_sub = 1;
-                       }
+                       ;}
     break;
 
   case 31:
@@ -273,7 +273,7 @@ case 2:
                              CvCLONE_on(PL_compcv);
                          parser->in_my = 0;
                          parser->in_my_stash = NULL;
-                       }
+                       ;}
     break;
 
   case 32:
@@ -293,7 +293,7 @@ case 2:
                          (yyval.opval) = (OP*)NULL;
                          intro_my();
                          parser->parsed_sub = 1;
-                       }
+                       ;}
     break;
 
   case 33:
@@ -303,12 +303,12 @@ case 2:
                          if ((ps[(2) - (4)].val.opval))
                              package_version((ps[(2) - (4)].val.opval));
                          (yyval.opval) = (OP*)NULL;
-                       }
+                       ;}
     break;
 
   case 34:
 #line 347 "perly.y"
-    { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
+    { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
     break;
 
   case 35:
@@ -318,7 +318,7 @@ case 2:
                          utilize((ps[(1) - (7)].val.ival), (ps[(2) - (7)].val.ival), (ps[(4) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval));
                          parser->parsed_sub = 1;
                          (yyval.opval) = (OP*)NULL;
-                       }
+                       ;}
     break;
 
   case 36:
@@ -327,7 +327,7 @@ case 2:
                          (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
                              newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
                          parser->copline = (line_t)(ps[(1) - (7)].val.ival);
-                       }
+                       ;}
     break;
 
   case 37:
@@ -336,7 +336,7 @@ case 2:
                          (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
                              newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
                          parser->copline = (line_t)(ps[(1) - (7)].val.ival);
-                       }
+                       ;}
     break;
 
   case 38:
@@ -350,17 +350,17 @@ case 2:
                                      ? 0
                                      : offset));
                          parser->copline = (line_t)(ps[(1) - (6)].val.ival);
-                       }
+                       ;}
     break;
 
   case 39:
 #line 379 "perly.y"
-    { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); }
+    { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); ;}
     break;
 
   case 40:
 #line 381 "perly.y"
-    { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); }
+    { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); ;}
     break;
 
   case 41:
@@ -370,7 +370,7 @@ case 2:
                                  newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
                                      (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
                          parser->copline = (line_t)(ps[(1) - (8)].val.ival);
-                       }
+                       ;}
     break;
 
   case 42:
@@ -380,17 +380,17 @@ case 2:
                                  newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
                                      (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
                          parser->copline = (line_t)(ps[(1) - (8)].val.ival);
-                       }
+                       ;}
     break;
 
   case 43:
 #line 397 "perly.y"
-    { parser->expect = XTERM; }
+    { parser->expect = XTERM; ;}
     break;
 
   case 44:
 #line 399 "perly.y"
-    { parser->expect = XTERM; }
+    { parser->expect = XTERM; ;}
     break;
 
   case 45:
@@ -408,7 +408,7 @@ case 2:
                          PL_hints |= HINT_BLOCK_SCOPE;
                          (yyval.opval) = block_end((ps[(3) - (13)].val.ival), forop);
                          parser->copline = (line_t)(ps[(1) - (13)].val.ival);
-                       }
+                       ;}
     break;
 
   case 46:
@@ -416,7 +416,7 @@ case 2:
     {
                          (yyval.opval) = block_end((ps[(3) - (9)].val.ival), newFOROP(0, (ps[(4) - (9)].val.opval), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
                          parser->copline = (line_t)(ps[(1) - (9)].val.ival);
-                       }
+                       ;}
     break;
 
   case 47:
@@ -425,12 +425,12 @@ case 2:
                          (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
                                      op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
                          parser->copline = (line_t)(ps[(1) - (8)].val.ival);
-                       }
+                       ;}
     break;
 
   case 48:
 #line 428 "perly.y"
-    { parser->in_my = 0; (yyval.opval) = my((ps[(5) - (5)].val.opval)); }
+    { parser->in_my = 0; (yyval.opval) = my((ps[(5) - (5)].val.opval)); ;}
     break;
 
   case 49:
@@ -446,7 +446,7 @@ case 2:
                                         (ps[(8) - (11)].val.opval), (ps[(10) - (11)].val.opval), (ps[(11) - (11)].val.opval))
                          );
                          parser->copline = (line_t)(ps[(1) - (11)].val.ival);
-                       }
+                       ;}
     break;
 
   case 50:
@@ -457,7 +457,7 @@ case 2:
                                                     (ps[(3) - (9)].val.opval)),
                                             OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
                          parser->copline = (line_t)(ps[(1) - (9)].val.ival);
-                       }
+                       ;}
     break;
 
   case 51:
@@ -466,7 +466,7 @@ case 2:
                          (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
                                  newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
                          parser->copline = (line_t)(ps[(1) - (7)].val.ival);
-                       }
+                       ;}
     break;
 
   case 52:
@@ -475,7 +475,7 @@ case 2:
                          /* a block is a loop that happens once */
                          (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
                                  (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
-                       }
+                       ;}
     break;
 
   case 53:
@@ -485,7 +485,7 @@ case 2:
                          if ((ps[(2) - (5)].val.opval)) {
                              package_version((ps[(2) - (5)].val.opval));
                          }
-                       }
+                       ;}
     break;
 
   case 54:
@@ -496,14 +496,14 @@ case 2:
                                  (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
                          if (parser->copline > (line_t)(ps[(4) - (8)].val.ival))
                              parser->copline = (line_t)(ps[(4) - (8)].val.ival);
-                       }
+                       ;}
     break;
 
   case 55:
 #line 478 "perly.y"
     {
                          (yyval.opval) = (ps[(1) - (2)].val.opval);
-                       }
+                       ;}
     break;
 
   case 56:
@@ -511,7 +511,7 @@ case 2:
     {
                          (yyval.opval) = (OP*)NULL;
                          parser->copline = NOLINE;
-                       }
+                       ;}
     break;
 
   case 57:
@@ -529,63 +529,63 @@ case 2:
                          else parser->copline--;
                          (yyval.opval) = newSTATEOP(0, NULL,
                                          op_convert_list(OP_FORMLINE, 0, list));
-                       }
+                       ;}
     break;
 
   case 58:
 #line 507 "perly.y"
-    { (yyval.opval) = NULL; }
+    { (yyval.opval) = NULL; ;}
     break;
 
   case 59:
 #line 509 "perly.y"
-    { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); }
+    { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); ;}
     break;
 
   case 60:
 #line 514 "perly.y"
-    { (yyval.opval) = (OP*)NULL; }
+    { (yyval.opval) = (OP*)NULL; ;}
     break;
 
   case 61:
 #line 516 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
     break;
 
   case 62:
 #line 518 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); }
+    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
     break;
 
   case 63:
 #line 520 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); }
+    { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
     break;
 
   case 64:
 #line 522 "perly.y"
-    { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); }
+    { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); ;}
     break;
 
   case 65:
 #line 524 "perly.y"
-    { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); }
+    { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
     break;
 
   case 66:
 #line 526 "perly.y"
     { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
-                         parser->copline = (line_t)(ps[(2) - (3)].val.ival); }
+                         parser->copline = (line_t)(ps[(2) - (3)].val.ival); ;}
     break;
 
   case 67:
 #line 529 "perly.y"
-    { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); }
+    { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;}
     break;
 
   case 68:
 #line 534 "perly.y"
-    { (yyval.opval) = (OP*)NULL; }
+    { (yyval.opval) = (OP*)NULL; ;}
     break;
 
   case 69:
@@ -593,7 +593,7 @@ case 2:
     {
                          ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
                          (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
-                       }
+                       ;}
     break;
 
   case 70:
@@ -603,114 +603,114 @@ case 2:
                                newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
                                op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
                          PL_hints |= HINT_BLOCK_SCOPE;
-                       }
+                       ;}
     break;
 
   case 71:
 #line 551 "perly.y"
-    { (yyval.opval) = (OP*)NULL; }
+    { (yyval.opval) = (OP*)NULL; ;}
     break;
 
   case 72:
 #line 553 "perly.y"
-    { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); }
+    { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); ;}
     break;
 
   case 73:
 #line 558 "perly.y"
     { (yyval.ival) = (PL_min_intro_pending &&
                            PL_max_intro_pending >=  PL_min_intro_pending);
-                         intro_my(); }
+                         intro_my(); ;}
     break;
 
   case 74:
 #line 564 "perly.y"
-    { (yyval.opval) = (OP*)NULL; }
+    { (yyval.opval) = (OP*)NULL; ;}
     break;
 
   case 76:
 #line 570 "perly.y"
     { YYSTYPE tmplval;
                          (void)scan_num("1", &tmplval);
-                         (yyval.opval) = tmplval.opval; }
+                         (yyval.opval) = tmplval.opval; ;}
     break;
 
   case 78:
 #line 578 "perly.y"
-    { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); }
+    { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
     break;
 
   case 79:
 #line 583 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
     break;
 
   case 80:
 #line 587 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
     break;
 
   case 81:
 #line 591 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
     break;
 
   case 82:
 #line 594 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
     break;
 
   case 83:
 #line 595 "perly.y"
-    { (yyval.opval) = (OP*)NULL; }
+    { (yyval.opval) = (OP*)NULL; ;}
     break;
 
   case 84:
 #line 599 "perly.y"
     { (yyval.ival) = start_subparse(FALSE, 0);
-                           SAVEFREESV(PL_compcv); }
+                           SAVEFREESV(PL_compcv); ;}
     break;
 
   case 85:
 #line 605 "perly.y"
     { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
-                           SAVEFREESV(PL_compcv); }
+                           SAVEFREESV(PL_compcv); ;}
     break;
 
   case 86:
 #line 610 "perly.y"
     { (yyval.ival) = start_subparse(TRUE, 0);
-                           SAVEFREESV(PL_compcv); }
+                           SAVEFREESV(PL_compcv); ;}
     break;
 
   case 89:
 #line 621 "perly.y"
-    { (yyval.opval) = (OP*)NULL; }
+    { (yyval.opval) = (OP*)NULL; ;}
     break;
 
   case 91:
 #line 627 "perly.y"
-    { (yyval.opval) = (OP*)NULL; }
+    { (yyval.opval) = (OP*)NULL; ;}
     break;
 
   case 92:
 #line 629 "perly.y"
-    { (yyval.opval) = (ps[(2) - (2)].val.opval); }
+    { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
     break;
 
   case 93:
 #line 631 "perly.y"
-    { (yyval.opval) = (OP*)NULL; }
+    { (yyval.opval) = (OP*)NULL; ;}
     break;
 
   case 94:
 #line 636 "perly.y"
-    { (yyval.opval) = (ps[(2) - (2)].val.opval); }
+    { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
     break;
 
   case 95:
 #line 638 "perly.y"
-    { (yyval.opval) = (OP*)NULL; }
+    { (yyval.opval) = (OP*)NULL; ;}
     break;
 
   case 96:
@@ -723,7 +723,7 @@ case 2:
                                packWARN(WARN_EXPERIMENTAL__SIGNATURES),
                                "The signatures feature is experimental");
                          (yyval.opval) = parse_subsignature();
-                       }
+                       ;}
     break;
 
   case 97:
@@ -732,32 +732,32 @@ case 2:
                          (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(2) - (3)].val.opval),
                                newSTATEOP(0, NULL, sawparens(newNULLLIST())));
                          parser->expect = XATTRBLOCK;
-                       }
+                       ;}
     break;
 
   case 99:
 #line 662 "perly.y"
-    { (yyval.opval) = (OP*)NULL; }
+    { (yyval.opval) = (OP*)NULL; ;}
     break;
 
   case 100:
 #line 667 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
+    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
     break;
 
   case 101:
 #line 669 "perly.y"
-    { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
+    { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
     break;
 
   case 102:
 #line 671 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
+    { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
     break;
 
   case 104:
 #line 677 "perly.y"
-    { (yyval.opval) = (ps[(1) - (2)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (2)].val.opval); ;}
     break;
 
   case 105:
@@ -765,21 +765,21 @@ case 2:
     {
                          OP* term = (ps[(3) - (3)].val.opval);
                          (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
-                       }
+                       ;}
     break;
 
   case 107:
 #line 688 "perly.y"
     { (yyval.opval) = op_convert_list((ps[(1) - (3)].val.ival), OPf_STACKED,
                                op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (3)].val.ival),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
-                       }
+                       ;}
     break;
 
   case 108:
 #line 692 "perly.y"
     { (yyval.opval) = op_convert_list((ps[(1) - (5)].val.ival), OPf_STACKED,
                                op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (5)].val.ival),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
-                       }
+                       ;}
     break;
 
   case 109:
@@ -788,7 +788,7 @@ case 2:
                                op_append_elem(OP_LIST,
                                    op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
                                    newMETHOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
-                       }
+                       ;}
     break;
 
   case 110:
@@ -796,7 +796,7 @@ case 2:
     { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
                                op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
                                    newMETHOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
-                       }
+                       ;}
     break;
 
   case 111:
@@ -805,7 +805,7 @@ case 2:
                                op_append_elem(OP_LIST,
                                    op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
                                    newMETHOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
-                       }
+                       ;}
     break;
 
   case 112:
@@ -814,23 +814,23 @@ case 2:
                                op_append_elem(OP_LIST,
                                    op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
                                    newMETHOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
-                       }
+                       ;}
     break;
 
   case 113:
 #line 719 "perly.y"
-    { (yyval.opval) = op_convert_list((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
+    { (yyval.opval) = op_convert_list((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
     break;
 
   case 114:
 #line 721 "perly.y"
-    { (yyval.opval) = op_convert_list((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); }
+    { (yyval.opval) = op_convert_list((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;}
     break;
 
   case 115:
 #line 723 "perly.y"
     { SvREFCNT_inc_simple_void(PL_compcv);
-                         (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); }
+                         (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
     break;
 
   case 116:
@@ -838,18 +838,18 @@ case 2:
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
                                 op_append_elem(OP_LIST,
                                   op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
-                       }
+                       ;}
     break;
 
   case 119:
 #line 741 "perly.y"
-    { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); }
+    { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); ;}
     break;
 
   case 120:
 #line 743 "perly.y"
     { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
-                       }
+                       ;}
     break;
 
   case 121:
@@ -857,7 +857,7 @@ case 2:
     { (yyval.opval) = newBINOP(OP_AELEM, 0,
                                        ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
                                        scalar((ps[(4) - (5)].val.opval)));
-                       }
+                       ;}
     break;
 
   case 122:
@@ -865,78 +865,78 @@ case 2:
     { (yyval.opval) = newBINOP(OP_AELEM, 0,
                                        ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
                                        scalar((ps[(3) - (4)].val.opval)));
-                       }
+                       ;}
     break;
 
   case 123:
 #line 756 "perly.y"
     { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
-                       }
+                       ;}
     break;
 
   case 124:
 #line 759 "perly.y"
     { (yyval.opval) = newBINOP(OP_HELEM, 0,
                                        ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
-                                       jmaybe((ps[(4) - (6)].val.opval))); }
+                                       jmaybe((ps[(4) - (6)].val.opval))); ;}
     break;
 
   case 125:
 #line 763 "perly.y"
     { (yyval.opval) = newBINOP(OP_HELEM, 0,
                                        ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
-                                       jmaybe((ps[(3) - (5)].val.opval))); }
+                                       jmaybe((ps[(3) - (5)].val.opval))); ;}
     break;
 
   case 126:
 #line 767 "perly.y"
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
-                                  newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); }
+                                  newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); ;}
     break;
 
   case 127:
 #line 770 "perly.y"
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
                                   op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
-                                      newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); }
+                                      newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); ;}
     break;
 
   case 128:
 #line 775 "perly.y"
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
                                   op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
-                                              newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); }
+                                              newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); ;}
     break;
 
   case 129:
 #line 779 "perly.y"
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
-                                  newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); }
+                                  newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); ;}
     break;
 
   case 130:
 #line 782 "perly.y"
-    { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); }
+    { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); ;}
     break;
 
   case 131:
 #line 784 "perly.y"
-    { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); }
+    { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); ;}
     break;
 
   case 132:
 #line 786 "perly.y"
-    { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); }
+    { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); ;}
     break;
 
   case 133:
 #line 791 "perly.y"
-    { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); }
+    { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); ;}
     break;
 
   case 134:
 #line 793 "perly.y"
-    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
+    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
     break;
 
   case 135:
@@ -944,94 +944,94 @@ case 2:
     {   if ((ps[(2) - (3)].val.ival) != OP_REPEAT)
                                scalar((ps[(1) - (3)].val.opval));
                            (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
-                       }
+                       ;}
     break;
 
   case 136:
 #line 800 "perly.y"
-    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
+    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
     break;
 
   case 137:
 #line 802 "perly.y"
-    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
+    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
     break;
 
   case 138:
 #line 804 "perly.y"
-    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
+    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
     break;
 
   case 139:
 #line 806 "perly.y"
-    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
+    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
     break;
 
   case 140:
 #line 808 "perly.y"
-    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
+    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
     break;
 
   case 141:
 #line 810 "perly.y"
-    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
+    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
     break;
 
   case 142:
 #line 812 "perly.y"
-    { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); }
+    { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
     break;
 
   case 143:
 #line 814 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
+    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
     break;
 
   case 144:
 #line 816 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
+    { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
     break;
 
   case 145:
 #line 818 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
+    { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
     break;
 
   case 146:
 #line 820 "perly.y"
-    { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); }
+    { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
     break;
 
   case 147:
 #line 825 "perly.y"
-    { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); }
+    { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); ;}
     break;
 
   case 148:
 #line 827 "perly.y"
-    { (yyval.opval) = (ps[(2) - (2)].val.opval); }
+    { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
     break;
 
   case 149:
 #line 830 "perly.y"
-    { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); }
+    { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
     break;
 
   case 150:
 #line 832 "perly.y"
-    { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval))); }
+    { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, scalar((ps[(2) - (2)].val.opval))); ;}
     break;
 
   case 151:
 #line 834 "perly.y"
     { (yyval.opval) = newUNOP(OP_POSTINC, 0,
-                                       op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); }
+                                       op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); ;}
     break;
 
   case 152:
 #line 837 "perly.y"
     { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
-                                       op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));}
+                                       op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));;}
     break;
 
   case 153:
@@ -1045,45 +1045,45 @@ case 2:
                                        )),
                                        (ps[(1) - (2)].val.opval)
                                       ));
-                       }
+                       ;}
     break;
 
   case 154:
 #line 851 "perly.y"
     { (yyval.opval) = newUNOP(OP_PREINC, 0,
-                                       op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); }
+                                       op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); ;}
     break;
 
   case 155:
 #line 854 "perly.y"
     { (yyval.opval) = newUNOP(OP_PREDEC, 0,
-                                       op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); }
+                                       op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); ;}
     break;
 
   case 156:
 #line 861 "perly.y"
-    { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); }
+    { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); ;}
     break;
 
   case 157:
 #line 863 "perly.y"
-    { (yyval.opval) = newANONLIST((OP*)NULL);}
+    { (yyval.opval) = newANONLIST((OP*)NULL);;}
     break;
 
   case 158:
 #line 865 "perly.y"
-    { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); }
+    { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); ;}
     break;
 
   case 159:
 #line 867 "perly.y"
-    { (yyval.opval) = newANONHASH((OP*)NULL); }
+    { (yyval.opval) = newANONHASH((OP*)NULL); ;}
     break;
 
   case 160:
 #line 869 "perly.y"
     { SvREFCNT_inc_simple_void(PL_compcv);
-                         (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); }
+                         (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;}
     break;
 
   case 161:
@@ -1096,82 +1096,82 @@ case 2:
                                op_append_list(OP_LINESEQ, (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval)));
                          SvREFCNT_inc_simple_void(PL_compcv);
                          (yyval.opval) = newANONATTRSUB((ps[(2) - (8)].val.ival), NULL, (ps[(5) - (8)].val.opval), body);
-                       }
+                       ;}
     break;
 
   case 162:
 #line 886 "perly.y"
-    { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));}
+    { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));;}
     break;
 
   case 163:
 #line 888 "perly.y"
-    { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));}
+    { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));;}
     break;
 
   case 168:
 #line 896 "perly.y"
-    { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); }
+    { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;}
     break;
 
   case 169:
 #line 898 "perly.y"
-    { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[(2) - (2)].val.opval)); }
+    { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[(2) - (2)].val.opval)); ;}
     break;
 
   case 170:
 #line 900 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
     break;
 
   case 171:
 #line 902 "perly.y"
-    { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); }
+    { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); ;}
     break;
 
   case 172:
 #line 904 "perly.y"
-    { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); }
+    { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;}
     break;
 
   case 173:
 #line 906 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
     break;
 
   case 174:
 #line 908 "perly.y"
-    { (yyval.opval) = sawparens(newNULLLIST()); }
+    { (yyval.opval) = sawparens(newNULLLIST()); ;}
     break;
 
   case 175:
 #line 910 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
     break;
 
   case 176:
 #line 912 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
     break;
 
   case 177:
 #line 914 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
     break;
 
   case 178:
 #line 916 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
     break;
 
   case 179:
 #line 918 "perly.y"
-    { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));}
+    { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
     break;
 
   case 180:
 #line 920 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
     break;
 
   case 181:
@@ -1184,7 +1184,7 @@ case 2:
                          if ((yyval.opval) && (ps[(1) - (4)].val.opval))
                              (yyval.opval)->op_private |=
                                  (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
-                       }
+                       ;}
     break;
 
   case 182:
@@ -1197,7 +1197,7 @@ case 2:
                          if ((yyval.opval) && (ps[(1) - (4)].val.opval))
                              (yyval.opval)->op_private |=
                                  (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
-                       }
+                       ;}
     break;
 
   case 183:
@@ -1210,7 +1210,7 @@ case 2:
                          if ((yyval.opval) && (ps[(1) - (5)].val.opval))
                              (yyval.opval)->op_private |=
                                  (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
-                       }
+                       ;}
     break;
 
   case 184:
@@ -1223,23 +1223,23 @@ case 2:
                          if ((yyval.opval) && (ps[(1) - (5)].val.opval))
                              (yyval.opval)->op_private |=
                                  (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
-                       }
+                       ;}
     break;
 
   case 185:
 #line 962 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
     break;
 
   case 186:
 #line 964 "perly.y"
-    { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); }
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
     break;
 
   case 187:
 #line 966 "perly.y"
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
-                       }
+                       ;}
     break;
 
   case 188:
@@ -1247,129 +1247,129 @@ case 2:
     {
                          (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
                                op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
-                       }
+                       ;}
     break;
 
   case 189:
 #line 974 "perly.y"
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
                            op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
-                       }
+                       ;}
     break;
 
   case 190:
 #line 978 "perly.y"
-    { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); }
+    { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); ;}
     break;
 
   case 191:
 #line 980 "perly.y"
-    { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); }
+    { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;}
     break;
 
   case 192:
 #line 982 "perly.y"
-    { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); }
+    { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); ;}
     break;
 
   case 193:
 #line 984 "perly.y"
     { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
-                                      scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); }
+                                      scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); ;}
     break;
 
   case 194:
 #line 987 "perly.y"
-    { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); }
+    { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); ;}
     break;
 
   case 195:
 #line 989 "perly.y"
     { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), OPf_SPECIAL);
-                           PL_hints |= HINT_BLOCK_SCOPE; }
+                           PL_hints |= HINT_BLOCK_SCOPE; ;}
     break;
 
   case 196:
 #line 992 "perly.y"
-    { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); }
+    { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;}
     break;
 
   case 197:
 #line 994 "perly.y"
-    { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); }
+    { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
     break;
 
   case 198:
 #line 996 "perly.y"
-    { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); }
+    { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;}
     break;
 
   case 199:
 #line 998 "perly.y"
-    { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
+    { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
     break;
 
   case 200:
 #line 1000 "perly.y"
-    { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); }
+    { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
     break;
 
   case 201:
 #line 1002 "perly.y"
-    { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); }
+    { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); ;}
     break;
 
   case 202:
 #line 1004 "perly.y"
-    { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); }
+    { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); ;}
     break;
 
   case 203:
 #line 1006 "perly.y"
-    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); }
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
     break;
 
   case 204:
 #line 1008 "perly.y"
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
-                           op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); }
+                           op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
     break;
 
   case 205:
 #line 1011 "perly.y"
-    { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); }
+    { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;}
     break;
 
   case 206:
 #line 1013 "perly.y"
-    { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);}
+    { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);;}
     break;
 
   case 207:
 #line 1015 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
     break;
 
   case 208:
 #line 1017 "perly.y"
-    { (yyval.opval) = (ps[(1) - (3)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (3)].val.opval); ;}
     break;
 
   case 209:
 #line 1019 "perly.y"
-    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); }
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
     break;
 
   case 210:
 #line 1021 "perly.y"
     { (yyval.opval) = ((ps[(1) - (3)].val.ival) == OP_NOT)
                           ? newUNOP((ps[(1) - (3)].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
-                          : newOP((ps[(1) - (3)].val.ival), OPf_SPECIAL); }
+                          : newOP((ps[(1) - (3)].val.ival), OPf_SPECIAL); ;}
     break;
 
   case 211:
 #line 1025 "perly.y"
-    { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); }
+    { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;}
     break;
 
   case 212:
@@ -1383,12 +1383,12 @@ case 2:
                                SAVEFREESV(PL_compcv);
                            } else
                                (yyval.ival) = 0;
-                       }
+                       ;}
     break;
 
   case 213:
 #line 1038 "perly.y"
-    { (yyval.opval) = pmruntime((ps[(1) - (6)].val.opval), (ps[(4) - (6)].val.opval), (ps[(5) - (6)].val.opval), 1, (ps[(2) - (6)].val.ival)); }
+    { (yyval.opval) = pmruntime((ps[(1) - (6)].val.opval), (ps[(4) - (6)].val.opval), (ps[(5) - (6)].val.opval), 1, (ps[(2) - (6)].val.ival)); ;}
     break;
 
   case 216:
@@ -1396,157 +1396,160 @@ case 2:
     {
                          (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
                                newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
-                       }
+                       ;}
     break;
 
   case 218:
 #line 1051 "perly.y"
-    { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); }
+    { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); ;}
     break;
 
   case 219:
 #line 1053 "perly.y"
-    { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); }
+    { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); ;}
     break;
 
   case 220:
 #line 1058 "perly.y"
-    { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); }
+    { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;}
     break;
 
   case 221:
 #line 1060 "perly.y"
-    { (yyval.opval) = sawparens(newNULLLIST()); }
+    { (yyval.opval) = sawparens(newNULLLIST()); ;}
     break;
 
   case 222:
 #line 1063 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
     break;
 
   case 223:
 #line 1065 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
     break;
 
   case 224:
 #line 1067 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
     break;
 
   case 225:
 #line 1072 "perly.y"
-    { (yyval.opval) = (OP*)NULL; }
+    { (yyval.opval) = (OP*)NULL; ;}
     break;
 
   case 226:
 #line 1074 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
     break;
 
   case 227:
 #line 1078 "perly.y"
-    { (yyval.opval) = (OP*)NULL; }
+    { (yyval.opval) = (OP*)NULL; ;}
     break;
 
   case 228:
 #line 1080 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
     break;
 
   case 229:
 #line 1084 "perly.y"
-    { (yyval.opval) = (OP*)NULL; }
+    { (yyval.opval) = (OP*)NULL; ;}
     break;
 
   case 230:
 #line 1086 "perly.y"
-    { (yyval.opval) = (ps[(2) - (2)].val.opval); }
+    { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
     break;
 
   case 231:
 #line 1092 "perly.y"
-    { parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); }
+    { parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
     break;
 
   case 237:
 #line 1105 "perly.y"
-    { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); }
+    { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;}
     break;
 
   case 238:
 #line 1109 "perly.y"
-    { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); }
+    { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); ;}
     break;
 
   case 239:
 #line 1113 "perly.y"
     { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
                          if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
-                       }
+                       ;}
     break;
 
   case 240:
 #line 1119 "perly.y"
     { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
                          if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
-                       }
+                       ;}
     break;
 
   case 241:
 #line 1125 "perly.y"
-    { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); }
+    { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); ;}
     break;
 
   case 242:
 #line 1127 "perly.y"
-    { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); }
+    { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;}
     break;
 
   case 243:
 #line 1131 "perly.y"
-    { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); }
+    { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); ;}
     break;
 
   case 245:
 #line 1136 "perly.y"
-    { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); }
+    { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); ;}
     break;
 
   case 247:
 #line 1141 "perly.y"
-    { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); }
+    { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); ;}
     break;
 
   case 249:
 #line 1146 "perly.y"
-    { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); }
+    { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); ;}
     break;
 
   case 250:
 #line 1151 "perly.y"
-    { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); }
+    { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
     break;
 
   case 251:
 #line 1153 "perly.y"
-    { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); }
+    { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
     break;
 
   case 252:
 #line 1155 "perly.y"
-    { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); }
+    { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
     break;
 
   case 253:
 #line 1158 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); }
+    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
     break;
 
+
+/* Line 1267 of yacc.c.  */
+
       default: break;
     
 
 /* Generated from:
- * 12bc2d35e1af6b72fc94eb1621fe7f5c3e605bbacc097f6fd0e4598864ad9939 perly.y
+ * e2ef3626c25dd92c66987e4c2f707e7f194c2bd5df74da27c51df206d9809412 perly.y
  * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl
  * ex: set ro: */
diff --git a/perly.h b/perly.h
index f26d4dc..db139d8 100644 (file)
--- a/perly.h
+++ b/perly.h
@@ -5,24 +5,27 @@
  */
 
 #ifdef PERL_CORE
-/* A Bison parser, made by GNU Bison 2.7.12-4996.  */
+/* A Bison parser, made by GNU Bison 2.3.  */
 
-/* Bison interface for Yacc-like parsers in C
-   
-      Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
-   
-   This program is free software: you can redistribute it and/or modify
+/* Skeleton interface for Bison's Yacc-like parsers in C
+
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-   
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-   
+
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
-/* Enabling traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-#if YYDEBUG
-extern int yydebug;
-#endif
-
 /* Tokens.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
@@ -133,7 +128,6 @@ extern int yydebug;
      ARROW = 337
    };
 #endif
-
 /* Tokens.  */
 #define GRAMPROG 258
 #define GRAMEXPR 259
@@ -217,6 +211,8 @@ extern int yydebug;
 #define ARROW 337
 
 
+
+
 #ifdef PERL_IN_TOKE_C
 static bool
 S_is_opval_token(int type) {
@@ -243,39 +239,23 @@ S_is_opval_token(int type) {
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
 {
-/* Line 2053 of yacc.c  */
-
     I32        ival; /* __DEFAULT__ (marker for regen_perly.pl;
                                must always be 1st union member) */
     char *pval;
     OP *opval;
     GV *gvval;
-
-
-/* Line 2053 of yacc.c  */
-} YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
+}
+/* Line 1529 of yacc.c.  */
+       YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
 #endif
 
 
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
 
 
 /* Generated from:
- * 12bc2d35e1af6b72fc94eb1621fe7f5c3e605bbacc097f6fd0e4598864ad9939 perly.y
+ * e2ef3626c25dd92c66987e4c2f707e7f194c2bd5df74da27c51df206d9809412 perly.y
  * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl
  * ex: set ro: */
index 74a5c33..8ef9129 100644 (file)
--- a/perly.tab
+++ b/perly.tab
@@ -6,7 +6,7 @@
 
 #define YYFINAL  14
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   2881
+#define YYLAST   2930
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  105
@@ -30,16 +30,16 @@ static const yytype_uint8 yytranslate[] =
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,    91,     2,     2,    15,    17,    19,     2,
-     103,   102,    18,    14,    80,    13,    22,   104,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,    83,    20,
-       2,    21,     2,    82,    16,     2,     2,     2,     2,     2,
+       2,     2,     2,    88,     2,     2,   102,    16,    17,     2,
+     100,    99,   103,    14,    77,    13,    19,   104,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,    80,   101,
+       2,    18,     2,    79,    15,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,    11,     2,    12,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     9,     2,    10,    92,     2,     2,     2,
+       2,     2,     2,     9,     2,    10,    89,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -53,14 +53,14 @@ static const yytype_uint8 yytranslate[] =
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
-       5,     6,     7,     8,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
-      79,    81,    84,    85,    86,    87,    88,    89,    90,    93,
-      94,    95,    96,    97,    98,    99,   100,   101
+       5,     6,     7,     8,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
+      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    78,    81,    82,    83,    84,    85,    86,    87,    90,
+      91,    92,    93,    94,    95,    96,    97,    98
 };
 
 #if YYDEBUG
@@ -102,92 +102,92 @@ static const yytype_int16 yyrhs[] =
      106,     0,    -1,    -1,     3,   107,   115,   118,    -1,    -1,
        4,   108,   168,    -1,    -1,     5,   109,   113,    -1,    -1,
        6,   110,   122,    -1,    -1,     7,   111,   120,    -1,    -1,
-       8,   112,   118,    -1,     9,   115,   118,    10,    -1,    21,
-     115,    20,    74,   119,    20,    22,    -1,    -1,     9,   117,
+       8,   112,   118,    -1,     9,   115,   118,    10,    -1,    18,
+     115,   101,    71,   119,   101,    19,    -1,    -1,     9,   117,
      118,    10,    -1,    -1,    -1,   118,   120,    -1,    -1,   119,
-     130,    -1,   122,    -1,   121,    -1,    36,   122,    -1,    36,
-     121,    -1,    35,    -1,    37,   145,   142,   114,    -1,    -1,
-      38,   146,   143,   123,   147,   148,   152,    -1,    -1,    38,
+     130,    -1,   122,    -1,   121,    -1,    33,   122,    -1,    33,
+     121,    -1,    32,    -1,    34,   145,   142,   114,    -1,    -1,
+      35,   146,   143,   123,   147,   148,   152,    -1,    -1,    35,
      146,   143,   124,   115,   150,   148,     9,   118,    10,    -1,
-      40,    23,    23,    20,    -1,    -1,    41,   143,   125,    23,
-      23,   167,    20,    -1,    44,   103,   115,   139,   102,   116,
-     133,    -1,    45,   103,   115,   141,   102,   116,   133,    -1,
-      50,   103,   115,   139,   102,   116,    -1,    51,   103,   115,
-     139,   102,   116,    -1,    52,   113,    -1,    42,   103,   115,
-     137,   102,   135,   116,   134,    -1,    43,   103,   115,   138,
-     102,   135,   116,   134,    -1,    -1,    -1,    49,   103,   115,
-     140,    20,   126,   137,    20,   127,   135,   140,   102,   116,
-      -1,    49,    70,   115,   170,   103,   139,   102,   116,   134,
-      -1,    49,   174,   103,   115,   139,   102,   116,   134,    -1,
-      -1,    49,    93,    70,   115,   171,   128,   103,   139,   102,
-     116,   134,    -1,    49,    93,   172,   103,   115,   139,   102,
-     116,   134,    -1,    49,   103,   115,   139,   102,   116,   134,
-      -1,   113,   134,    -1,    -1,    40,    23,    23,     9,   115,
-     129,   118,    10,    -1,   132,    20,    -1,    20,    -1,    26,
-     131,    -1,    -1,    73,   118,    74,    -1,     1,    -1,   153,
-      -1,   153,    44,   153,    -1,   153,    45,   153,    -1,   153,
-      42,   153,    -1,   153,    43,   138,    -1,   153,    49,   153,
-      -1,   153,    51,   153,    -1,    -1,    46,   116,    -1,    47,
-     103,   139,   102,   116,   133,    -1,    -1,    48,   113,    -1,
+      37,    20,    20,   101,    -1,    -1,    38,   143,   125,    20,
+      20,   167,   101,    -1,    41,   100,   115,   139,    99,   116,
+     133,    -1,    42,   100,   115,   141,    99,   116,   133,    -1,
+      47,   100,   115,   139,    99,   116,    -1,    48,   100,   115,
+     139,    99,   116,    -1,    49,   113,    -1,    39,   100,   115,
+     137,    99,   135,   116,   134,    -1,    40,   100,   115,   138,
+      99,   135,   116,   134,    -1,    -1,    -1,    46,   100,   115,
+     140,   101,   126,   137,   101,   127,   135,   140,    99,   116,
+      -1,    46,    67,   115,   170,   100,   139,    99,   116,   134,
+      -1,    46,   174,   100,   115,   139,    99,   116,   134,    -1,
+      -1,    46,    90,    67,   115,   171,   128,   100,   139,    99,
+     116,   134,    -1,    46,    90,   172,   100,   115,   139,    99,
+     116,   134,    -1,    46,   100,   115,   139,    99,   116,   134,
+      -1,   113,   134,    -1,    -1,    37,    20,    20,     9,   115,
+     129,   118,    10,    -1,   132,   101,    -1,   101,    -1,    23,
+     131,    -1,    -1,    70,   118,    71,    -1,     1,    -1,   153,
+      -1,   153,    41,   153,    -1,   153,    42,   153,    -1,   153,
+      39,   153,    -1,   153,    40,   138,    -1,   153,    46,   153,
+      -1,   153,    48,   153,    -1,    -1,    43,   116,    -1,    44,
+     100,   139,    99,   116,   133,    -1,    -1,    45,   113,    -1,
       -1,    -1,   132,    -1,    -1,   153,    -1,   153,    -1,   153,
-      -1,   136,    -1,   138,    -1,    23,    -1,    -1,    -1,    -1,
-      -1,    23,    -1,    28,    -1,    -1,    26,    -1,    -1,    72,
-      26,    -1,    72,    -1,    72,    26,    -1,    72,    -1,    -1,
-     103,   151,   102,    -1,   113,    -1,    20,    -1,   153,    78,
-     153,    -1,   153,    77,   153,    -1,   153,    76,   153,    -1,
-     154,    -1,   154,    80,    -1,   154,    80,   163,    -1,   163,
-      -1,    60,   182,   154,    -1,    58,   103,   182,   153,   102,
-      -1,   163,   101,   157,   103,   168,   102,    -1,   163,   101,
-     157,    -1,    24,   182,   167,    -1,    25,   182,   103,   168,
-     102,    -1,    60,   167,    -1,    58,   103,   168,   102,    -1,
-      -1,    33,   144,   113,   156,   167,    -1,    24,    -1,   174,
-      -1,   181,     9,   153,    20,    10,    -1,   174,    11,   153,
-      12,    -1,   163,   101,    11,   153,    12,    -1,   158,    11,
-     153,    12,    -1,   174,     9,   153,    20,    10,    -1,   163,
-     101,     9,   153,    20,    10,    -1,   158,     9,   153,    20,
-      10,    -1,   163,   101,   103,   102,    -1,   163,   101,   103,
-     153,   102,    -1,   158,   103,   153,   102,    -1,   158,   103,
-     102,    -1,   103,   153,   102,    11,   153,    12,    -1,    29,
-      11,   153,    12,    -1,   103,   102,    11,   153,    12,    -1,
-     163,    81,   163,    -1,   163,    95,   163,    -1,   163,    63,
-     163,    -1,   163,    64,   163,    -1,   163,    89,   163,    -1,
-     163,    61,   163,    -1,   163,    62,   163,    -1,   163,    88,
-     163,    -1,   163,    87,   163,    -1,   163,    54,   163,    -1,
-     163,    86,   163,    -1,   163,    85,   163,    -1,   163,    84,
-     163,    -1,   163,    90,   163,    -1,    13,   163,    -1,    14,
-     163,    -1,    91,   163,    -1,    92,   163,    -1,   163,    98,
-      -1,   163,    97,    -1,   163,    96,    -1,   100,   163,    -1,
-      99,   163,    -1,    11,   153,    12,    -1,    11,    12,    -1,
-      67,   153,    20,    10,    -1,    67,    20,    10,    -1,    39,
-     144,   147,   148,   113,    -1,    39,   144,   115,   150,   148,
-       9,   118,    10,    -1,    66,   163,    -1,    66,   113,    -1,
-     159,    -1,   160,    -1,   161,    -1,   162,    -1,   163,    82,
-     163,    83,   163,    -1,    93,   163,    -1,   165,    -1,    69,
-     163,    -1,   103,   153,   102,    -1,    29,    -1,   103,   102,
+      -1,   136,    -1,   138,    -1,    20,    -1,    -1,    -1,    -1,
+      -1,    20,    -1,    25,    -1,    -1,    23,    -1,    -1,    69,
+      23,    -1,    69,    -1,    69,    23,    -1,    69,    -1,    -1,
+     100,   151,    99,    -1,   113,    -1,   101,    -1,   153,    75,
+     153,    -1,   153,    74,   153,    -1,   153,    73,   153,    -1,
+     154,    -1,   154,    77,    -1,   154,    77,   163,    -1,   163,
+      -1,    57,   182,   154,    -1,    55,   100,   182,   153,    99,
+      -1,   163,    98,   157,   100,   168,    99,    -1,   163,    98,
+     157,    -1,    21,   182,   167,    -1,    22,   182,   100,   168,
+      99,    -1,    57,   167,    -1,    55,   100,   168,    99,    -1,
+      -1,    30,   144,   113,   156,   167,    -1,    21,    -1,   174,
+      -1,   181,     9,   153,   101,    10,    -1,   174,    11,   153,
+      12,    -1,   163,    98,    11,   153,    12,    -1,   158,    11,
+     153,    12,    -1,   174,     9,   153,   101,    10,    -1,   163,
+      98,     9,   153,   101,    10,    -1,   158,     9,   153,   101,
+      10,    -1,   163,    98,   100,    99,    -1,   163,    98,   100,
+     153,    99,    -1,   158,   100,   153,    99,    -1,   158,   100,
+      99,    -1,   100,   153,    99,    11,   153,    12,    -1,    26,
+      11,   153,    12,    -1,   100,    99,    11,   153,    12,    -1,
+     163,    78,   163,    -1,   163,    92,   163,    -1,   163,    60,
+     163,    -1,   163,    61,   163,    -1,   163,    86,   163,    -1,
+     163,    58,   163,    -1,   163,    59,   163,    -1,   163,    85,
+     163,    -1,   163,    84,   163,    -1,   163,    51,   163,    -1,
+     163,    83,   163,    -1,   163,    82,   163,    -1,   163,    81,
+     163,    -1,   163,    87,   163,    -1,    13,   163,    -1,    14,
+     163,    -1,    88,   163,    -1,    89,   163,    -1,   163,    95,
+      -1,   163,    94,    -1,   163,    93,    -1,    97,   163,    -1,
+      96,   163,    -1,    11,   153,    12,    -1,    11,    12,    -1,
+      64,   153,   101,    10,    -1,    64,   101,    10,    -1,    36,
+     144,   147,   148,   113,    -1,    36,   144,   115,   150,   148,
+       9,   118,    10,    -1,    63,   163,    -1,    63,   113,    -1,
+     159,    -1,   160,    -1,   161,    -1,   162,    -1,   163,    79,
+     163,    80,   163,    -1,    90,   163,    -1,   165,    -1,    66,
+     163,    -1,   100,   153,    99,    -1,    26,    -1,   100,    99,
       -1,   174,    -1,   178,    -1,   176,    -1,   175,    -1,   177,
       -1,   158,    -1,   179,    11,   153,    12,    -1,   180,    11,
-     153,    12,    -1,   179,     9,   153,    20,    10,    -1,   180,
-       9,   153,    20,    10,    -1,    26,    -1,   173,    -1,   173,
-     103,   102,    -1,   173,   103,   153,   102,    -1,    68,   146,
-     167,    -1,   163,   101,    15,    18,    -1,   163,   101,    16,
-      18,    -1,   163,   101,    17,    18,    -1,   163,   101,    19,
-      18,    -1,   163,   101,    18,    18,    -1,    53,    -1,    53,
-     163,    -1,    79,   154,    -1,    59,    -1,    59,   113,    -1,
-      59,   163,    -1,    71,    -1,    71,   163,    -1,    32,    -1,
-      32,   163,    -1,    56,    -1,    56,   103,   102,    -1,    30,
-      -1,    30,   103,   102,    -1,    31,    -1,    57,   103,   102,
-      -1,    57,   103,   153,   102,    -1,    -1,    27,   164,   103,
-     154,   169,   102,    -1,    23,    -1,   155,    -1,    55,    -1,
-      34,    -1,    70,   166,   149,    -1,    70,   166,    -1,   103,
-     153,   102,    -1,   103,   102,    -1,   174,    -1,   176,    -1,
+     153,    12,    -1,   179,     9,   153,   101,    10,    -1,   180,
+       9,   153,   101,    10,    -1,    23,    -1,   173,    -1,   173,
+     100,    99,    -1,   173,   100,   153,    99,    -1,    65,   146,
+     167,    -1,   163,    98,   102,   103,    -1,   163,    98,    15,
+     103,    -1,   163,    98,    16,   103,    -1,   163,    98,    17,
+     103,    -1,   163,    98,   103,   103,    -1,    50,    -1,    50,
+     163,    -1,    76,   154,    -1,    56,    -1,    56,   113,    -1,
+      56,   163,    -1,    68,    -1,    68,   163,    -1,    29,    -1,
+      29,   163,    -1,    53,    -1,    53,   100,    99,    -1,    27,
+      -1,    27,   100,    99,    -1,    28,    -1,    54,   100,    99,
+      -1,    54,   100,   153,    99,    -1,    -1,    24,   164,   100,
+     154,   169,    99,    -1,    20,    -1,   155,    -1,    52,    -1,
+      31,    -1,    67,   166,   149,    -1,    67,   166,    -1,   100,
+     153,    99,    -1,   100,    99,    -1,   174,    -1,   176,    -1,
      175,    -1,    -1,   154,    -1,    -1,   153,    -1,    -1,   104,
      153,    -1,   174,    -1,   174,    -1,   175,    -1,   176,    -1,
-     171,    -1,   173,    -1,    19,   182,    -1,    15,   182,    -1,
-      16,   182,    -1,    17,   182,    -1,    65,   182,    -1,   163,
-     101,    65,    18,    -1,    18,   182,    -1,   175,    -1,   163,
-     101,    16,    -1,   176,    -1,   163,   101,    17,    -1,   178,
-      -1,   163,   101,    18,    -1,    23,    -1,   174,    -1,   113,
-      -1,    28,    -1
+     171,    -1,   173,    -1,    17,   182,    -1,   102,   182,    -1,
+      15,   182,    -1,    16,   182,    -1,    62,   182,    -1,   163,
+      98,    62,   103,    -1,   103,   182,    -1,   175,    -1,   163,
+      98,    15,    -1,   176,    -1,   163,    98,    16,    -1,   178,
+      -1,   163,    98,   103,    -1,    20,    -1,   174,    -1,   113,
+      -1,    25,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
@@ -222,38 +222,38 @@ static const yytype_uint16 yyrline[] =
 };
 #endif
 
-#if YYDEBUG || YYERROR_VERBOSE || 0
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 static const char *const yytname[] =
 {
   "$end", "error", "$undefined", "GRAMPROG", "GRAMEXPR", "GRAMBLOCK",
   "GRAMBARESTMT", "GRAMFULLSTMT", "GRAMSTMTSEQ", "'{'", "'}'", "'['",
-  "']'", "'-'", "'+'", "'$'", "'@'", "'%'", "'*'", "'&'", "';'", "'='",
-  "'.'", "WORD", "METHOD", "FUNCMETH", "THING", "PMFUNC", "PRIVATEREF",
-  "QWLIST", "FUNC0OP", "FUNC0SUB", "UNIOPSUB", "LSTOPSUB", "PLUGEXPR",
-  "PLUGSTMT", "LABEL", "FORMAT", "SUB", "ANONSUB", "PACKAGE", "USE",
-  "WHILE", "UNTIL", "IF", "UNLESS", "ELSE", "ELSIF", "CONTINUE", "FOR",
-  "GIVEN", "WHEN", "DEFAULT", "LOOPEX", "DOTDOT", "YADAYADA", "FUNC0",
-  "FUNC1", "FUNC", "UNIOP", "LSTOP", "RELOP", "EQOP", "MULOP", "ADDOP",
-  "DOLSHARP", "DO", "HASHBRACK", "NOAMP", "LOCAL", "MY", "REQUIRE",
-  "COLONATTR", "FORMLBRACK", "FORMRBRACK", "PREC_LOW", "DOROP", "OROP",
-  "ANDOP", "NOTOP", "','", "ASSIGNOP", "'?'", "':'", "DORDOR", "OROR",
-  "ANDAND", "BITOROP", "BITANDOP", "SHIFTOP", "MATCHOP", "'!'", "'~'",
-  "REFGEN", "UMINUS", "POWOP", "POSTJOIN", "POSTDEC", "POSTINC", "PREDEC",
-  "PREINC", "ARROW", "')'", "'('", "'/'", "$accept", "grammar", "$@1",
-  "$@2", "$@3", "$@4", "$@5", "$@6", "block", "formblock", "remember",
+  "']'", "'-'", "'+'", "'@'", "'%'", "'&'", "'='", "'.'", "WORD", "METHOD",
+  "FUNCMETH", "THING", "PMFUNC", "PRIVATEREF", "QWLIST", "FUNC0OP",
+  "FUNC0SUB", "UNIOPSUB", "LSTOPSUB", "PLUGEXPR", "PLUGSTMT", "LABEL",
+  "FORMAT", "SUB", "ANONSUB", "PACKAGE", "USE", "WHILE", "UNTIL", "IF",
+  "UNLESS", "ELSE", "ELSIF", "CONTINUE", "FOR", "GIVEN", "WHEN", "DEFAULT",
+  "LOOPEX", "DOTDOT", "YADAYADA", "FUNC0", "FUNC1", "FUNC", "UNIOP",
+  "LSTOP", "RELOP", "EQOP", "MULOP", "ADDOP", "DOLSHARP", "DO",
+  "HASHBRACK", "NOAMP", "LOCAL", "MY", "REQUIRE", "COLONATTR",
+  "FORMLBRACK", "FORMRBRACK", "PREC_LOW", "DOROP", "OROP", "ANDOP",
+  "NOTOP", "','", "ASSIGNOP", "'?'", "':'", "DORDOR", "OROR", "ANDAND",
+  "BITOROP", "BITANDOP", "SHIFTOP", "MATCHOP", "'!'", "'~'", "REFGEN",
+  "UMINUS", "POWOP", "POSTJOIN", "POSTDEC", "POSTINC", "PREDEC", "PREINC",
+  "ARROW", "')'", "'('", "';'", "'$'", "'*'", "'/'", "$accept", "grammar",
+  "@1", "@2", "@3", "@4", "@5", "@6", "block", "formblock", "remember",
   "mblock", "mremember", "stmtseq", "formstmtseq", "fullstmt",
-  "labfullstmt", "barestmt", "$@7", "$@8", "$@9", "$@10", "$@11", "@12",
-  "$@13", "formline", "formarg", "sideff", "else", "cont", "mintro",
-  "nexpr", "texpr", "iexpr", "mexpr", "mnexpr", "miexpr", "formname",
-  "startsub", "startanonsub", "startformsub", "subname", "proto",
-  "subattrlist", "myattrlist", "subsignature", "@14", "optsubbody", "expr",
-  "listexpr", "listop", "@15", "method", "subscripted", "termbinop",
-  "termunop", "anonymous", "termdo", "term", "@16", "myattrterm", "myterm",
+  "labfullstmt", "barestmt", "@7", "@8", "@9", "@10", "@11", "@12", "@13",
+  "formline", "formarg", "sideff", "else", "cont", "mintro", "nexpr",
+  "texpr", "iexpr", "mexpr", "mnexpr", "miexpr", "formname", "startsub",
+  "startanonsub", "startformsub", "subname", "proto", "subattrlist",
+  "myattrlist", "subsignature", "@14", "optsubbody", "expr", "listexpr",
+  "listop", "@15", "method", "subscripted", "termbinop", "termunop",
+  "anonymous", "termdo", "term", "@16", "myattrterm", "myterm",
   "optlistexpr", "optexpr", "optrepl", "my_scalar", "my_var",
   "refgen_topic", "amper", "scalar", "ary", "hsh", "arylen", "star",
-  "sliceme", "kvslice", "gelem", "indirob", YY_NULL
+  "sliceme", "kvslice", "gelem", "indirob", 0
 };
 #endif
 
@@ -263,16 +263,16 @@ static const char *const yytname[] =
 static const yytype_uint16 yytoknum[] =
 {
        0,   256,   257,   258,   259,   260,   261,   262,   263,   123,
-     125,    91,    93,    45,    43,    36,    64,    37,    42,    38,
-      59,    61,    46,   264,   265,   266,   267,   268,   269,   270,
-     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
-     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
-     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
-     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
-      44,   321,    63,    58,   322,   323,   324,   325,   326,   327,
-     328,    33,   126,   329,   330,   331,   332,   333,   334,   335,
-     336,   337,    41,    40,    47
+     125,    91,    93,    45,    43,    64,    37,    38,    61,    46,
+     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
+     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
+     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
+     294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
+     314,   315,   316,   317,   318,   319,   320,    44,   321,    63,
+      58,   322,   323,   324,   325,   326,   327,   328,    33,   126,
+     329,   330,   331,   332,   333,   334,   335,   336,   337,    41,
+      40,    59,    36,    42,    47
 };
 # endif
 
@@ -338,27 +338,27 @@ static const yytype_uint8 yyr2[] =
        1,     1,     1,     1
 };
 
-/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
-   Performed when YYTABLE doesn't specify something else to do.  Zero
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
    means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
        0,     2,     4,     6,     8,    10,    12,     0,    16,   227,
        0,     0,     0,    19,     1,    19,     0,     0,     0,     0,
-       0,     0,     0,     0,   214,     0,     0,   185,   212,   173,
-     207,   209,   203,    85,   217,    85,   195,   216,   205,     0,
-       0,   198,   225,     0,     0,     0,     0,     0,     0,   201,
+       0,     0,   214,     0,     0,   185,   212,   173,   207,   209,
+     203,    85,   217,    85,   195,   216,   205,     0,     0,   198,
+     225,     0,     0,     0,     0,     0,     0,   201,     0,     0,
        0,     0,     0,     0,     0,     0,     0,   228,   103,   215,
      180,   164,   165,   166,   167,   106,   170,     5,   186,   175,
      178,   177,   179,   176,     0,     0,     0,    16,     7,    60,
-      56,    27,    86,     0,     0,    84,     0,     0,     0,     0,
-       0,     0,     0,     0,    71,     9,     0,    61,     0,    11,
+      27,    86,     0,     0,    84,     0,     0,     0,     0,     0,
+       0,     0,     0,    56,    71,     9,     0,    61,     0,    11,
       24,    23,     0,     0,   157,     0,   147,   148,   250,   253,
-     252,   251,   238,   239,   240,   243,   237,   225,     0,     0,
-       0,     0,   204,     0,    89,   196,     0,     0,   227,   199,
-     200,   250,   226,   113,   251,     0,   241,   163,   162,     0,
-       0,    87,    88,   225,   171,     0,   219,   222,   224,   223,
-     202,   197,   149,   150,   169,   155,   154,   174,     0,     0,
+     252,   251,   239,   240,   237,   225,     0,     0,     0,     0,
+     204,     0,    89,   196,     0,     0,   227,   199,   200,   250,
+     226,   113,   251,     0,   241,   163,   162,     0,     0,    87,
+      88,   225,   171,     0,   219,   222,   224,   223,   202,   197,
+     149,   150,   169,   155,   154,   174,     0,   238,   243,     0,
        0,     0,   104,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,   153,   152,   151,     0,     0,     0,     0,     0,     0,
@@ -370,14 +370,14 @@ static const yytype_uint8 yydefact[] =
      221,     0,    95,   218,     0,   172,   102,   101,   100,   105,
        0,     0,   129,     0,   142,   138,   139,   135,   136,   133,
        0,   145,   144,   143,   141,   140,   137,   146,   134,     0,
-       0,     0,   245,   247,   249,     0,   117,     0,     0,   110,
+       0,   245,   247,     0,   117,     0,     0,     0,   249,   110,
      118,   187,     0,     0,     0,     0,     0,     0,     0,     0,
        0,    82,     0,    29,     0,     0,    76,     0,     0,     0,
        0,    16,   235,     0,   236,   232,   233,   234,     0,    16,
        0,     0,    72,    64,    65,    78,    62,    63,    66,    67,
        0,   229,   131,   225,    96,    91,    93,     0,   211,   114,
        0,   158,   220,    94,     0,     0,     0,   122,   128,     0,
-       0,     0,   190,   191,   192,   194,   193,   242,   126,     0,
+       0,     0,   191,   192,   193,   242,   126,     0,   190,   194,
      227,   188,     0,   120,     0,   181,     0,   182,     0,    14,
       16,    28,    89,    16,    16,    33,     0,     0,    77,     0,
        0,    79,    81,     0,     0,   231,     0,    16,    75,    80,
@@ -391,8 +391,8 @@ static const yytype_uint8 yydefact[] =
       21,    99,    98,    30,     0,     0,    35,    71,    71,    19,
        0,     0,    36,    37,     0,     0,     0,    51,     0,    71,
      161,     0,    19,    54,    41,    42,     0,    69,     0,    71,
-       0,    71,    44,    47,     0,    58,    22,     0,    17,     0,
-      46,     0,    50,    73,    15,    19,    57,    32,     0,    71,
+       0,    71,    44,    47,    58,     0,    22,     0,    17,     0,
+      46,     0,    50,    73,    19,    57,    15,    32,     0,    71,
        0,     0,    68,    49,     0,    59,    70,     0,    45
 };
 
@@ -401,679 +401,684 @@ static const yytype_int16 yydefgoto[] =
 {
       -1,     7,     8,     9,    10,    11,    12,    13,    94,   361,
       15,   439,   459,   102,   471,   220,   100,   101,   362,   363,
-     295,   445,   493,   442,   434,   486,   496,    96,   462,   210,
-     436,   379,   367,   314,   370,   381,   373,   292,   197,   123,
-     194,   143,   230,   327,   243,   325,   390,   453,    97,    58,
-      59,   323,   279,    60,    61,    62,    63,    64,    65,   119,
-      66,   146,   133,    67,   388,   374,   302,   303,    68,    69,
-      70,    71,    72,    73,    74,    75,    76,   112
+     295,   445,   493,   442,   434,   486,   495,    96,   462,   210,
+     436,   379,   367,   314,   370,   381,   373,   292,   197,   121,
+     194,   141,   230,   327,   243,   325,   390,   453,    97,    58,
+      59,   323,   279,    60,    61,    62,    63,    64,    65,   117,
+      66,   144,   131,    67,   388,   374,   302,   303,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,   157
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -419
+#define YYPACT_NINF -402
 static const yytype_int16 yypact[] =
 {
-     680,  -419,  -419,  -419,  -419,  -419,  -419,    28,  -419,  2667,
-      32,  1460,  1367,  -419,  -419,  -419,  1927,  2667,  2667,    35,
-      35,    35,    35,    35,  -419,    35,    35,  -419,  -419,    38,
-     -18,  -419,  2667,  -419,  -419,  -419,  2667,  -419,    -8,    10,
-      18,  1834,  1741,    35,  1834,  2018,    71,  2667,     2,  2667,
-    2667,  2667,  2667,  2667,  2667,  2667,  2109,     3,     8,  -419,
-       1,  -419,  -419,  -419,  -419,  2735,  -419,  -419,    21,    48,
-     124,   127,  -419,    89,   138,   156,   105,  -419,  -419,  -419,
-    -419,  -419,  -419,    71,    83,  -419,    25,    36,    50,    54,
-     -10,    61,    65,    32,   104,  -419,   151,  2293,  1367,  -419,
-    -419,  -419,   611,   706,  -419,    97,   276,   276,  -419,  -419,
-    -419,  -419,  -419,  -419,  -419,  -419,  -419,  2667,    73,    76,
-    2667,    86,  2094,    32,   -13,  2735,    93,  2202,  1741,  -419,
-    2094,   512,     8,  -419,   421,  2667,  -419,  -419,  2094,   186,
-      53,  -419,  -419,  2667,  2094,  2295,   133,  -419,  -419,  -419,
-    2094,     8,   276,   276,   276,   380,   380,   195,   -24,  2667,
-    2667,  2667,  2667,  2667,  2667,  2388,  2667,  2667,  2667,  2667,
-    2667,  2667,  2667,  2667,  2667,  2667,  2667,  2667,  2667,  2667,
-    2667,  -419,  -419,  -419,   101,  2481,  2667,  2667,  2667,  2667,
-    2667,  2667,  2667,  -419,   191,  -419,   192,  -419,  -419,  -419,
-    -419,  -419,  -419,   391,  -419,   117,  -419,  -419,  -419,    32,
-    -419,  -419,  2667,  2667,  2667,  2667,  2667,  2667,  -419,  -419,
-    -419,  -419,  -419,  2667,  2667,   114,  -419,  -419,  -419,   121,
-     153,  -419,  -419,   281,   135,  2667,     8,  -419,   228,  -419,
-    -419,   340,   203,  -419,  2667,   229,   163,   163,  -419,  2735,
-     173,   122,  -419,   348,  1541,  2003,  1819,   439,   357,  2735,
-    2690,   482,   482,  1631,  1726,  1912,  2187,   276,   276,  2667,
-    2667,   420,   226,   234,   236,   237,  -419,   238,  2574,   159,
-    -419,  -419,   411,   182,   150,   250,   157,   278,   205,   289,
-     801,  -419,   242,   164,    57,   245,  2667,  2667,  2667,  2667,
-     256,  -419,  -419,   187,  -419,  -419,  -419,  -419,  1553,  -419,
-    2667,  2667,  -419,     3,  -419,     3,     3,     3,     3,     3,
-     197,   -37,  -419,  2667,  -419,   153,   263,    32,  -419,  -419,
-     418,  -419,  -419,  -419,   209,  2667,   301,  -419,  -419,  2667,
-     303,   219,  -419,  -419,  -419,  -419,  -419,  -419,  -419,   450,
-    2667,  -419,   302,  -419,   304,  -419,   309,  -419,   310,  -419,
-    -419,  -419,   299,  -419,  -419,  -419,   306,   230,     3,   233,
-     235,     3,  -419,   239,   241,  -419,   231,  -419,  -419,  -419,
-     240,   313,   273,  2667,   246,   251,  -419,  2667,   260,  -419,
-     261,   329,  -419,  -419,  -419,  -419,   224,  -419,  2780,   330,
-    -419,  -419,   262,  -419,  -419,  -419,  -419,   332,   153,   121,
-    -419,  2667,  -419,  -419,   359,   359,  2667,  -419,  2667,   359,
-    -419,   267,   359,   359,     3,  -419,  -419,  -419,  -419,  -419,
-    -419,   311,    67,   153,  -419,   366,   359,   359,  -419,    55,
-      55,   307,   320,   335,   104,  2667,   359,  -419,  -419,   896,
-    -419,  -419,  -419,  -419,   425,   991,  -419,   104,   104,  -419,
-     359,   342,  -419,  -419,   359,  2667,   359,  -419,   426,   104,
-    -419,    11,  -419,  -419,  -419,  -419,  1086,  -419,  2667,   104,
-     354,   104,  -419,  -419,   437,   389,  -419,  1181,  -419,   365,
-    -419,   359,  -419,  -419,  -419,  -419,  -419,  -419,   359,   104,
-    1646,  1274,    55,  -419,   369,  -419,  -419,   359,  -419
+     367,  -402,  -402,  -402,  -402,  -402,  -402,    22,  -402,  2761,
+      32,  1548,  1451,  -402,  -402,  -402,  2017,  2761,  2761,    33,
+      33,    33,  -402,    33,    33,  -402,  -402,    40,   -38,  -402,
+    2761,  -402,  -402,  -402,  2761,  -402,   -27,   -22,   -21,  1924,
+    1829,    33,  1924,  2110,    46,  2761,    14,  2761,  2761,  2761,
+    2761,  2761,  2761,  2761,  2203,    33,    33,   180,    11,  -402,
+      39,  -402,  -402,  -402,  -402,  2832,  -402,  -402,     2,    43,
+      72,    80,  -402,    86,   222,   251,    96,  -402,  -402,  -402,
+    -402,  -402,    46,    95,  -402,    12,    31,    36,    47,    51,
+      52,    57,    32,  -402,    87,  -402,    45,   705,  1451,  -402,
+    -402,  -402,   674,   772,  -402,    49,    79,    79,  -402,  -402,
+    -402,  -402,  -402,  -402,  -402,  2761,    61,    68,  2761,    77,
+    2002,    32,    10,  2832,   115,  2296,  1829,  -402,  2002,   578,
+      11,  -402,   490,  2761,  -402,  -402,  2002,   159,   131,  -402,
+    -402,  2761,  2002,  2389,   146,  -402,  -402,  -402,  2002,    11,
+      79,    79,    79,   449,   449,   183,   317,  -402,  -402,  2761,
+    2761,  2761,  2761,  2761,  2761,  2482,  2761,  2761,  2761,  2761,
+    2761,  2761,  2761,  2761,  2761,  2761,  2761,  2761,  2761,  2761,
+    2761,  -402,  -402,  -402,   208,  2575,  2761,  2761,  2761,  2761,
+    2761,  2761,  2761,  -402,   206,  -402,   207,  -402,  -402,  -402,
+    -402,  -402,  -402,    60,  -402,   135,  -402,  -402,  -402,    32,
+    -402,  -402,  2761,  2761,  2761,  2761,  2761,  2761,  -402,  -402,
+    -402,  -402,  -402,  2761,  2761,    70,  -402,  -402,  -402,   143,
+     177,  -402,  -402,   348,   168,  2761,    11,  -402,   258,  -402,
+    -402,   364,   236,  -402,  2761,   262,   200,   200,  -402,  2832,
+     147,    75,  -402,   375,  1629,  1909,   372,   505,   203,  2832,
+    2787,   548,   548,  1719,  1814,   394,  1962,    79,    79,  2761,
+    2761,   184,   186,   196,  -402,   197,  2668,     6,   199,   212,
+    -402,  -402,   422,   242,    92,   245,   117,   249,   122,   279,
+     869,  -402,   268,   213,    -7,   287,  2761,  2761,  2761,  2761,
+     223,  -402,  -402,   226,  -402,  -402,  -402,  -402,  1641,  -402,
+    2761,  2761,  -402,   180,  -402,   180,   180,   180,   180,   180,
+     230,   -30,  -402,  2761,  -402,   177,   309,    32,  -402,  -402,
+     440,  -402,  -402,  -402,   125,  2761,   323,  -402,  -402,  2761,
+     313,   128,  -402,  -402,  -402,  -402,  -402,   453,  -402,  -402,
+    2761,  -402,   325,  -402,   330,  -402,   337,  -402,   338,  -402,
+    -402,  -402,   334,  -402,  -402,  -402,   343,   269,   180,   278,
+     282,   180,  -402,   285,   308,  -402,     1,  -402,  -402,  -402,
+     310,   314,   210,  2761,   319,   326,  -402,  2761,   328,  -402,
+     329,   415,  -402,  -402,  -402,  -402,   167,  -402,   424,   419,
+    -402,  -402,   335,  -402,  -402,  -402,  -402,   340,   177,   143,
+    -402,  2761,  -402,  -402,   426,   426,  2761,  -402,  2761,   426,
+    -402,   344,   426,   426,   180,  -402,  -402,  -402,  -402,  -402,
+    -402,   371,     0,   177,  -402,   345,   426,   426,  -402,    26,
+      26,   346,   351,   357,    87,  2761,   426,  -402,  -402,   966,
+    -402,  -402,  -402,  -402,   459,  1063,  -402,    87,    87,  -402,
+     426,   362,  -402,  -402,   426,  2761,   426,  -402,   370,    87,
+    -402,    -4,  -402,  -402,  -402,  -402,  1160,  -402,  2761,    87,
+     373,    87,  -402,  -402,   406,   458,  -402,  1257,  -402,   379,
+    -402,   426,  -402,  -402,  -402,  -402,  -402,  -402,   426,    87,
+    1734,  1354,    26,  -402,   392,  -402,  -402,   426,  -402
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,     4,  -419,
-     -56,   -76,  -419,   -15,  -419,   456,   376,     9,  -419,  -419,
-    -419,  -419,  -419,  -419,  -419,  -419,  -419,  -306,  -418,   -30,
-    -404,  -419,    34,   -96,  -246,   -14,  -419,  -419,   295,   457,
-    -419,   408,   131,  -322,  -419,    91,  -419,  -419,    -5,   -35,
-    -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,   225,  -419,
-    -419,  -419,  -101,  -127,  -419,  -419,   139,  -419,   318,    13,
-     -42,   -40,  -419,  -419,  -419,  -419,  -419,    49
+    -402,  -402,  -402,  -402,  -402,  -402,  -402,  -402,     4,  -402,
+     160,   -81,  -402,   -15,  -402,   481,   396,    21,  -402,  -402,
+    -402,  -402,  -402,  -402,  -402,  -402,  -402,  -307,  -385,  -130,
+    -401,  -402,    53,   -61,  -290,    25,  -402,  -402,   305,   471,
+    -402,   430,   171,  -322,  -402,   126,  -402,  -402,    -5,   -35,
+    -402,  -402,  -402,  -402,  -402,  -402,  -402,  -402,   227,  -402,
+    -402,  -402,  -107,  -116,  -402,  -402,   158,  -402,   342,    44,
+     -40,   -39,  -402,  -402,  -402,  -402,  -402,    16
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
-   number is the opposite.  If YYTABLE_NINF, syntax error.  */
+   number is the opposite.  If zero, do what YYDEFACT says.
+   If YYTABLE_NINF, syntax error.  */
 #define YYTABLE_NINF -249
 static const yytype_int16 yytable[] =
 {
-     103,   234,   378,   391,    57,    19,   148,   132,   149,   437,
-     163,   105,   164,   228,    78,   151,   222,    19,    20,    21,
-      95,   193,   463,   110,   110,   110,   110,   110,    14,   110,
-     110,   484,   111,   111,   111,   111,   111,   485,   111,   111,
-     140,    77,   239,   162,    77,   129,   110,   110,   137,   120,
-      19,   158,   159,   160,   161,   134,   111,   186,   108,   187,
-     202,   147,   380,   109,   384,   385,   364,   387,   229,   113,
-     114,   115,   116,   238,   117,   118,    77,   365,   245,   159,
-     160,   161,   132,   203,   506,   121,   432,   451,   162,   500,
-     -16,   135,   136,   204,   141,   126,   320,   208,  -248,   142,
-     236,   460,   461,   205,   165,   145,   196,   219,   132,   221,
-     269,   454,   270,   127,   192,   225,   271,   272,   273,   274,
-     275,   128,   233,    57,   185,   276,   322,   227,   198,   159,
-     160,   161,   110,  -244,   337,  -244,  -246,   421,  -246,   199,
-     241,   134,   296,   297,   298,   299,   300,   188,   308,   189,
-     310,   311,   209,   200,   246,   247,   248,   201,   250,   251,
-     253,   306,   353,   307,   206,   190,   277,   191,   207,   355,
-     441,   211,   443,   159,   160,   161,   223,   235,   290,   224,
-     282,   283,   284,   285,   286,   287,   288,   289,   226,   321,
-     159,   160,   161,   336,   378,   231,   237,   280,   159,   160,
-     161,   369,   352,   372,   278,   242,   244,   313,   315,   316,
-     317,   318,   319,   312,   291,   294,   305,   357,    57,   480,
-     309,   395,   389,   402,   324,   326,   159,   160,   161,   333,
-     330,   400,   489,   159,   160,   161,   428,   329,   331,   334,
-     335,   161,   106,   107,   343,   376,    19,    20,    21,   159,
-     160,   161,   344,   383,   345,   346,   347,   122,   159,   160,
-     161,   125,   350,   360,   340,   341,   130,   -31,   366,   138,
-     354,    19,   144,   349,   150,   110,   152,   153,   154,   155,
-     156,   159,   160,   161,   111,   159,   160,   161,   132,   392,
-     377,   368,   315,   371,   315,   159,   160,   161,   356,   386,
-     159,   160,   161,   382,   407,   371,   371,   409,   410,   358,
-     435,   397,   403,   375,   404,   212,   213,   214,   215,   405,
-     406,   418,   216,   399,   217,   228,   159,   160,   161,   411,
-     396,   393,   412,   420,   306,   413,   307,   414,   427,   440,
-     429,   415,   419,   444,   416,    57,   447,   448,   422,   159,
-     160,   161,   431,   423,   159,   160,   161,   159,   160,   161,
-     457,   458,   425,   426,   430,   159,   160,   161,   438,   446,
-     469,   180,   181,   182,   183,   -79,   132,   184,   371,   159,
-     160,   161,   424,   328,   477,   450,   456,   249,   479,   305,
-     481,   254,   255,   256,   257,   258,   259,   260,   261,   262,
-     263,   264,   265,   266,   267,   268,    19,    20,    21,   464,
-      23,   371,   449,   371,   467,   499,   159,   160,   161,   455,
-     169,  -175,   502,   465,   159,   160,   161,   474,   475,    77,
-     186,   508,   187,  -175,   472,    19,   452,   466,   342,   483,
-     368,  -175,   332,   108,   476,   478,   482,   179,   109,   490,
-     338,   492,   180,   181,   182,   183,   491,   487,   184,   494,
-     371,   301,   495,  -175,  -175,  -175,  -175,   498,    99,   503,
-    -175,   507,  -175,   371,   218,  -175,  -249,  -249,  -249,   468,
-     501,   184,  -175,  -175,  -175,  -175,   504,   159,   160,   161,
-     293,   195,   124,   408,   159,   160,   161,  -175,  -175,  -175,
-     433,  -175,  -175,  -175,  -175,  -175,  -175,  -175,  -175,  -175,
-    -175,  -175,  -214,   351,     0,   417,  -175,  -175,  -175,  -175,
-     394,   304,  -175,  -175,  -214,  -175,   159,   160,   161,   179,
-       0,     0,  -214,     0,   180,   181,   182,   183,     0,     0,
-     184,     0,     0,   167,   168,   169,   170,     0,     0,     0,
-       0,     0,   401,     0,  -214,  -214,  -214,  -214,     0,     0,
-       0,  -214,     0,  -214,   398,     0,  -214,     0,   175,   176,
-     177,   178,   179,  -214,  -214,  -214,  -214,   180,   181,   182,
-     183,     0,     0,   184,     0,     0,     0,     0,  -214,  -214,
-    -214,     0,  -214,  -214,  -214,  -214,  -214,  -214,  -214,  -214,
-    -214,  -214,  -214,     0,     0,     0,     0,  -214,  -214,  -214,
-    -214,   -13,    79,  -214,  -214,     0,  -214,     0,     0,     0,
-      77,     0,    16,     0,    17,    18,    19,    20,    21,    22,
-      23,    80,     0,     0,    24,    25,    26,    27,    28,     0,
-      29,    30,    31,    32,    33,    34,    81,    98,    82,    83,
-      35,    84,    85,    86,    87,    88,    89,     0,     0,     0,
-      90,    91,    92,    93,    36,     0,    37,    38,    39,    40,
-      41,    42,     0,     0,     0,     0,    43,    44,    45,    46,
-      47,    48,    49,     1,     2,     3,     4,     5,     6,     0,
-      50,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    51,    52,    53,     0,    -3,    79,     0,     0,
-      54,    55,     0,     0,    56,    77,     0,    16,     0,    17,
-      18,    19,    20,    21,    22,    23,    80,     0,     0,    24,
-      25,    26,    27,    28,     0,    29,    30,    31,    32,    33,
-      34,    81,    98,    82,    83,    35,    84,    85,    86,    87,
-      88,    89,     0,     0,     0,    90,    91,    92,    93,    36,
-       0,    37,    38,    39,    40,    41,    42,     0,     0,     0,
-       0,    43,    44,    45,    46,    47,    48,    49,     0,     0,
-       0,     0,     0,     0,     0,    50,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    51,    52,    53,
-       0,     0,    79,     0,     0,    54,    55,     0,     0,    56,
-      77,   359,    16,     0,    17,    18,    19,    20,    21,    22,
-      23,    80,     0,     0,    24,    25,    26,    27,    28,     0,
-      29,    30,    31,    32,    33,    34,    81,    98,    82,    83,
-      35,    84,    85,    86,    87,    88,    89,     0,     0,     0,
-      90,    91,    92,    93,    36,     0,    37,    38,    39,    40,
-      41,    42,     0,     0,     0,     0,    43,    44,    45,    46,
-      47,    48,    49,     0,     0,     0,     0,     0,     0,     0,
-      50,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    51,    52,    53,     0,     0,    79,     0,     0,
-      54,    55,     0,     0,    56,    77,   470,    16,     0,    17,
-      18,    19,    20,    21,    22,    23,    80,     0,     0,    24,
-      25,    26,    27,    28,     0,    29,    30,    31,    32,    33,
-      34,    81,    98,    82,    83,    35,    84,    85,    86,    87,
-      88,    89,     0,     0,     0,    90,    91,    92,    93,    36,
-       0,    37,    38,    39,    40,    41,    42,     0,     0,     0,
-       0,    43,    44,    45,    46,    47,    48,    49,     0,     0,
-       0,     0,     0,     0,     0,    50,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    51,    52,    53,
-       0,     0,    79,     0,     0,    54,    55,     0,     0,    56,
-      77,   473,    16,     0,    17,    18,    19,    20,    21,    22,
-      23,    80,     0,     0,    24,    25,    26,    27,    28,     0,
-      29,    30,    31,    32,    33,    34,    81,    98,    82,    83,
-      35,    84,    85,    86,    87,    88,    89,     0,     0,     0,
-      90,    91,    92,    93,    36,     0,    37,    38,    39,    40,
-      41,    42,     0,     0,     0,     0,    43,    44,    45,    46,
-      47,    48,    49,     0,     0,     0,     0,     0,     0,     0,
-      50,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    51,    52,    53,     0,     0,    79,     0,     0,
-      54,    55,     0,     0,    56,    77,   488,    16,     0,    17,
-      18,    19,    20,    21,    22,    23,    80,     0,     0,    24,
-      25,    26,    27,    28,     0,    29,    30,    31,    32,    33,
-      34,    81,    98,    82,    83,    35,    84,    85,    86,    87,
-      88,    89,     0,     0,     0,    90,    91,    92,    93,    36,
-       0,    37,    38,    39,    40,    41,    42,     0,     0,     0,
-       0,    43,    44,    45,    46,    47,    48,    49,     0,     0,
-       0,     0,     0,     0,     0,    50,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    51,    52,    53,
-       0,     0,    79,     0,     0,    54,    55,     0,     0,    56,
-      77,   497,    16,     0,    17,    18,    19,    20,    21,    22,
-      23,    80,     0,     0,    24,    25,    26,    27,    28,     0,
-      29,    30,    31,    32,    33,    34,    81,    98,    82,    83,
-      35,    84,    85,    86,    87,    88,    89,     0,     0,     0,
-      90,    91,    92,    93,    36,     0,    37,    38,    39,    40,
-      41,    42,     0,     0,     0,     0,    43,    44,    45,    46,
-      47,    48,    49,     0,     0,     0,     0,     0,     0,     0,
-      50,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    51,    52,    53,    79,     0,     0,     0,     0,
-      54,    55,     0,    77,    56,    16,     0,    17,    18,    19,
-      20,    21,    22,    23,    80,     0,     0,    24,    25,    26,
-      27,    28,     0,    29,    30,    31,    32,    33,    34,    81,
-      98,    82,    83,    35,    84,    85,    86,    87,    88,    89,
-       0,     0,     0,    90,    91,    92,    93,    36,     0,    37,
-      38,    39,    40,    41,    42,     0,     0,     0,     0,    43,
-      44,    45,    46,    47,    48,    49,     0,     0,   505,     0,
-       0,     0,     0,    50,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    51,    52,    53,    79,     0,
-       0,     0,     0,    54,    55,     0,    77,    56,    16,     0,
-      17,    18,    19,    20,    21,    22,    23,    80,     0,     0,
-      24,    25,    26,    27,    28,     0,    29,    30,    31,    32,
-      33,    34,    81,    98,    82,    83,    35,    84,    85,    86,
-      87,    88,    89,     0,     0,     0,    90,    91,    92,    93,
-      36,     0,    37,    38,    39,    40,    41,    42,     0,     0,
-       0,     0,    43,    44,    45,    46,    47,    48,    49,     0,
-       0,     0,     0,     0,     0,     0,    50,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    51,    52,
-      53,    79,     0,     0,     0,     0,    54,    55,     0,    77,
-      56,    16,     0,    17,    18,    19,    20,    21,    22,    23,
-      80,     0,     0,    24,    25,    26,    27,    28,     0,    29,
-      30,    31,    32,    33,    34,    81,     0,    82,    83,    35,
-      84,    85,    86,    87,    88,    89,     0,     0,     0,    90,
-      91,    92,    93,    36,     0,    37,    38,    39,    40,    41,
-      42,     0,     0,     0,     0,    43,    44,    45,    46,    47,
-      48,    49,     0,     0,     0,     0,     0,     0,     0,    50,
+     103,   378,   364,   391,    57,   130,   146,   147,   222,    77,
+     234,   105,   437,   149,    78,    77,    19,    20,   380,   484,
+     384,   385,    14,   110,   110,   110,   108,   110,   110,    19,
+      20,   109,    95,   228,   239,   112,   113,   114,   138,   115,
+     116,    77,    77,   127,   110,   110,   135,   162,   163,   156,
+     164,   118,   186,   108,   187,   463,   133,   134,   109,   110,
+     110,   221,   119,   111,   111,   111,   139,   111,   111,   460,
+     461,   140,   158,   124,   387,    19,    20,    21,   125,   126,
+     130,  -244,   322,  -244,   132,   111,   432,   337,   162,  -246,
+     145,  -246,   500,   421,   365,  -248,   208,   485,   236,   111,
+     111,   451,   185,    55,   353,   192,   130,   320,    55,   348,
+     -16,   454,   198,   225,   143,   196,    55,   506,   202,   219,
+     233,    57,   159,   160,   161,   227,   441,   301,   443,   355,
+     110,   199,   209,   205,   357,    55,   200,   395,   241,   165,
+     400,   203,   235,   159,   160,   161,   211,   201,   159,   160,
+     161,   204,   206,    55,   246,   247,   248,   207,   250,   251,
+     253,   223,    55,   306,   307,   159,   160,   161,   224,   237,
+     132,   180,   181,   182,   183,   480,   226,   184,   290,   428,
+     282,   283,   284,   285,   286,   287,   288,   289,   489,   321,
+     159,   160,   161,   378,   244,   159,   160,   161,   159,   160,
+     161,   159,   160,   161,   159,   160,   161,   313,   315,   316,
+     317,   318,   319,   312,   231,   242,   389,   269,    57,   270,
+     159,   160,   161,   271,   272,   273,   291,   294,   280,   274,
+     330,   188,   238,   189,   402,   309,   369,   193,   372,   334,
+     159,   160,   161,   324,   106,   107,   326,   305,   336,   212,
+     213,   214,   215,   159,   160,   161,   216,   120,   217,   333,
+     190,   123,   191,   169,   340,   341,   128,   329,   331,   136,
+     275,   347,   142,   335,   148,   161,   150,   151,   152,   153,
+     154,   110,   229,   159,   160,   161,   360,   342,   130,   343,
+     179,   368,   315,   371,   315,   180,   181,   182,   183,   344,
+     345,   184,   349,   382,   435,   371,   371,   366,   276,   -79,
+     277,   278,   350,   -31,   467,   159,   160,   161,   159,   160,
+     161,   111,   159,   160,   161,    55,   377,   474,   475,   386,
+     396,   393,   392,   397,   440,   403,   306,   307,   444,   483,
+     404,   447,   448,   352,   375,    57,   354,   405,   406,   490,
+     356,   492,   159,   160,   161,   457,   458,   228,   296,   297,
+     298,   299,   300,   411,   308,   469,   310,   311,   412,   503,
+       1,     2,     3,     4,     5,     6,   130,   413,   371,   477,
+     358,   414,   424,   479,   415,   481,   159,   160,   161,   249,
+     159,   160,   161,   254,   255,   256,   257,   258,   259,   260,
+     261,   262,   263,   264,   265,   266,   267,   268,   416,   419,
+     499,   371,   449,   371,   399,   420,   245,   502,   422,   455,
+     305,   159,   160,   161,   427,   423,   508,   425,   426,   429,
+     167,  -249,   169,   170,   430,   438,   452,   159,   160,   161,
+     368,   431,   450,   446,   476,   464,   456,   328,   159,   160,
+     161,   465,   167,   168,   169,   170,   466,   487,   178,   179,
+     371,   376,   478,   332,   180,   181,   182,   183,   472,   383,
+     184,   482,   491,   371,   338,   166,   494,   496,   498,   501,
+     178,   179,   167,   168,   169,   170,   180,   181,   182,   183,
+    -175,   507,   184,    99,   218,   159,   160,   161,   468,   186,
+     293,   187,  -175,   172,   122,   173,   174,   175,   176,   177,
+     178,   179,   195,   159,   160,   161,   180,   181,   182,   183,
+     407,   351,   184,   409,   410,   504,   159,   160,   161,  -175,
+    -175,  -175,  -175,   408,   417,   433,  -175,   418,  -175,   394,
+       0,  -175,  -249,  -249,  -249,   304,     0,   184,  -175,  -175,
+    -175,  -175,   401,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,  -175,  -175,  -175,   398,  -175,  -175,  -175,
+    -175,  -175,  -175,  -175,  -175,  -175,  -175,  -175,  -214,     0,
+       0,     0,  -175,  -175,  -175,  -175,     0,     0,  -175,  -175,
+    -214,  -175,   179,     0,  -175,     0,     0,   180,   181,   182,
+     183,     0,     0,   184,     0,     0,   167,   168,   169,   170,
+       0,     0,     0,     0,     0,     0,     0,  -214,  -214,  -214,
+    -214,     0,     0,     0,  -214,     0,  -214,     0,     0,  -214,
+       0,   175,   176,   177,   178,   179,  -214,  -214,  -214,  -214,
+     180,   181,   182,   183,     0,     0,   184,     0,     0,     0,
+       0,  -214,  -214,  -214,     0,  -214,  -214,  -214,  -214,  -214,
+    -214,  -214,  -214,  -214,  -214,  -214,     0,     0,     0,     0,
+    -214,  -214,  -214,  -214,   -13,    79,  -214,  -214,     0,  -214,
+       0,     0,  -214,    77,     0,    16,     0,    17,    18,    19,
+      20,    21,     0,     0,    22,    23,    24,    25,    26,     0,
+      27,    28,    29,    30,    31,    32,    80,    98,    81,    82,
+      33,    83,    84,    85,    86,    87,    88,     0,     0,     0,
+      89,    90,    91,    92,    34,     0,    35,    36,    37,    38,
+      39,    40,     0,     0,     0,     0,    41,    42,    43,    44,
+      45,    46,    47,     0,   212,   213,   214,   215,     0,     0,
+      48,   216,     0,   217,     0,     0,     0,     0,     0,     0,
+       0,     0,    49,    50,    51,     0,     0,     0,     0,     0,
+      52,    53,    -3,    79,    54,    93,    55,    56,   159,   160,
+     161,    77,     0,    16,     0,    17,    18,    19,    20,    21,
+       0,     0,    22,    23,    24,    25,    26,     0,    27,    28,
+      29,    30,    31,    32,    80,    98,    81,    82,    33,    83,
+      84,    85,    86,    87,    88,     0,     0,     0,    89,    90,
+      91,    92,    34,     0,    35,    36,    37,    38,    39,    40,
+       0,     0,     0,     0,    41,    42,    43,    44,    45,    46,
+      47,     0,     0,     0,     0,     0,     0,     0,    48,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      49,    50,    51,     0,     0,     0,     0,     0,    52,    53,
+      79,     0,    54,    93,    55,    56,     0,     0,    77,   359,
+      16,     0,    17,    18,    19,    20,    21,     0,     0,    22,
+      23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
+      32,    80,    98,    81,    82,    33,    83,    84,    85,    86,
+      87,    88,     0,     0,     0,    89,    90,    91,    92,    34,
+       0,    35,    36,    37,    38,    39,    40,     0,     0,     0,
+       0,    41,    42,    43,    44,    45,    46,    47,     0,     0,
+       0,     0,     0,     0,     0,    48,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    49,    50,    51,
+       0,     0,     0,     0,     0,    52,    53,    79,     0,    54,
+      93,    55,    56,     0,     0,    77,   470,    16,     0,    17,
+      18,    19,    20,    21,     0,     0,    22,    23,    24,    25,
+      26,     0,    27,    28,    29,    30,    31,    32,    80,    98,
+      81,    82,    33,    83,    84,    85,    86,    87,    88,     0,
+       0,     0,    89,    90,    91,    92,    34,     0,    35,    36,
+      37,    38,    39,    40,     0,     0,     0,     0,    41,    42,
+      43,    44,    45,    46,    47,     0,     0,     0,     0,     0,
+       0,     0,    48,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    49,    50,    51,     0,     0,     0,
+       0,     0,    52,    53,    79,     0,    54,    93,    55,    56,
+       0,     0,    77,   473,    16,     0,    17,    18,    19,    20,
+      21,     0,     0,    22,    23,    24,    25,    26,     0,    27,
+      28,    29,    30,    31,    32,    80,    98,    81,    82,    33,
+      83,    84,    85,    86,    87,    88,     0,     0,     0,    89,
+      90,    91,    92,    34,     0,    35,    36,    37,    38,    39,
+      40,     0,     0,     0,     0,    41,    42,    43,    44,    45,
+      46,    47,     0,     0,     0,     0,     0,     0,     0,    48,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    49,    50,    51,     0,     0,     0,     0,     0,    52,
+      53,    79,     0,    54,    93,    55,    56,     0,     0,    77,
+     488,    16,     0,    17,    18,    19,    20,    21,     0,     0,
+      22,    23,    24,    25,    26,     0,    27,    28,    29,    30,
+      31,    32,    80,    98,    81,    82,    33,    83,    84,    85,
+      86,    87,    88,     0,     0,     0,    89,    90,    91,    92,
+      34,     0,    35,    36,    37,    38,    39,    40,     0,     0,
+       0,     0,    41,    42,    43,    44,    45,    46,    47,     0,
+       0,     0,     0,     0,     0,     0,    48,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    49,    50,
+      51,     0,     0,     0,     0,     0,    52,    53,    79,     0,
+      54,    93,    55,    56,     0,     0,    77,   497,    16,     0,
+      17,    18,    19,    20,    21,     0,     0,    22,    23,    24,
+      25,    26,     0,    27,    28,    29,    30,    31,    32,    80,
+      98,    81,    82,    33,    83,    84,    85,    86,    87,    88,
+       0,     0,     0,    89,    90,    91,    92,    34,     0,    35,
+      36,    37,    38,    39,    40,     0,     0,     0,     0,    41,
+      42,    43,    44,    45,    46,    47,     0,     0,     0,     0,
+       0,     0,     0,    48,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    49,    50,    51,     0,     0,
+       0,     0,     0,    52,    53,    79,     0,    54,    93,    55,
+      56,     0,     0,    77,     0,    16,     0,    17,    18,    19,
+      20,    21,     0,     0,    22,    23,    24,    25,    26,     0,
+      27,    28,    29,    30,    31,    32,    80,    98,    81,    82,
+      33,    83,    84,    85,    86,    87,    88,     0,     0,     0,
+      89,    90,    91,    92,    34,     0,    35,    36,    37,    38,
+      39,    40,     0,     0,     0,     0,    41,    42,    43,    44,
+      45,    46,    47,     0,     0,   505,     0,     0,     0,     0,
+      48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    49,    50,    51,     0,     0,     0,     0,     0,
+      52,    53,    79,     0,    54,    93,    55,    56,     0,     0,
+      77,     0,    16,     0,    17,    18,    19,    20,    21,     0,
+       0,    22,    23,    24,    25,    26,     0,    27,    28,    29,
+      30,    31,    32,    80,    98,    81,    82,    33,    83,    84,
+      85,    86,    87,    88,     0,     0,     0,    89,    90,    91,
+      92,    34,     0,    35,    36,    37,    38,    39,    40,     0,
+       0,     0,     0,    41,    42,    43,    44,    45,    46,    47,
+       0,     0,     0,     0,     0,     0,     0,    48,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
+      50,    51,     0,     0,     0,     0,     0,    52,    53,    79,
+       0,    54,    93,    55,    56,     0,     0,    77,     0,    16,
+       0,    17,    18,    19,    20,    21,     0,     0,    22,    23,
+      24,    25,    26,     0,    27,    28,    29,    30,    31,    32,
+      80,     0,    81,    82,    33,    83,    84,    85,    86,    87,
+      88,     0,     0,     0,    89,    90,    91,    92,    34,     0,
+      35,    36,    37,    38,    39,    40,     0,     0,     0,     0,
+      41,    42,    43,    44,    45,    46,    47,     0,     0,     0,
+       0,     0,     0,     0,    48,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    49,    50,    51,     0,
+       0,     0,    79,     0,    52,    53,     0,     0,    54,    93,
+      55,    56,    16,     0,    17,    18,    19,    20,    21,     0,
+       0,    22,    23,    24,    25,    26,     0,    27,    28,    29,
+      30,    31,    32,     0,     0,     0,     0,    33,     0,     0,
+    -249,     0,     0,     0,     0,     0,     0,   167,   168,   169,
+     170,    34,     0,    35,    36,    37,    38,    39,    40,     0,
+       0,     0,     0,    41,    42,    43,    44,    45,    46,    47,
+     173,   174,   175,   176,   177,   178,   179,    48,     0,     0,
+       0,   180,   181,   182,   183,     0,     0,   184,     0,    49,
+      50,    51,     0,     0,     0,    79,     0,    52,    53,     0,
+       0,    54,   -74,    55,    56,    16,     0,    17,    18,    19,
+      20,    21,     0,     0,    22,    23,    24,    25,    26,     0,
+      27,    28,    29,    30,    31,    32,     0,     0,     0,     0,
+      33,     0,     0,     0,     0,     0,     0,   167,   168,   169,
+     170,     0,     0,     0,    34,     0,    35,    36,    37,    38,
+      39,    40,     0,     0,     0,     0,    41,    42,    43,    44,
+      45,    46,    47,   176,   177,   178,   179,     0,     0,     0,
+      48,   180,   181,   182,   183,     0,     0,   184,     0,     0,
+       0,     0,    49,    50,    51,     0,     0,     0,     0,     0,
+      52,    53,     0,   -74,    54,     0,    55,    56,    77,     0,
+      16,     0,    17,    18,    19,    20,    21,     0,     0,   129,
+      23,    24,    25,    26,   109,    27,    28,    29,    30,    31,
+      32,     0,     0,     0,     0,    33,     0,     0,     0,     0,
+       0,     0,   167,   168,   169,   170,     0,     0,     0,    34,
+       0,    35,    36,    37,    38,    39,    40,     0,     0,     0,
+       0,    41,    42,    43,    44,    45,    46,    47,     0,   177,
+     178,   179,     0,     0,     0,    48,   180,   181,   182,   183,
+       0,     0,   184,     0,     0,     0,     0,    49,    50,    51,
+       0,     0,     0,     0,     0,    52,    53,     0,     0,    54,
+       0,    55,    56,    77,     0,    16,     0,    17,    18,    19,
+      20,    21,     0,     0,    22,    23,    24,    25,    26,     0,
+      27,    28,    29,    30,    31,    32,     0,     0,     0,     0,
+      33,     0,     0,     0,     0,     0,     0,  -249,     0,   169,
+     170,     0,     0,     0,    34,     0,    35,    36,    37,    38,
+      39,    40,     0,     0,     0,     0,    41,    42,    43,    44,
+      45,    46,    47,     0,     0,   178,   179,     0,     0,     0,
+      48,   180,   181,   182,   183,     0,     0,   184,     0,     0,
+       0,     0,    49,    50,    51,     0,     0,     0,     0,     0,
+      52,    53,   169,   170,    54,     0,    55,    56,    16,   104,
+      17,    18,    19,    20,    21,     0,     0,    22,    23,    24,
+      25,    26,     0,    27,    28,    29,    30,    31,    32,   179,
+       0,     0,     0,    33,   180,   181,   182,   183,     0,     0,
+     184,     0,   169,   170,     0,     0,     0,    34,     0,    35,
+      36,    37,    38,    39,    40,     0,     0,     0,     0,    41,
+      42,    43,    44,    45,    46,    47,     0,     0,   178,   179,
+       0,     0,     0,    48,   180,   181,   182,   183,     0,     0,
+     184,     0,     0,     0,     0,    49,    50,    51,     0,     0,
+       0,     0,     0,    52,    53,     0,     0,    54,     0,    55,
+      56,    16,     0,    17,    18,    19,    20,    21,     0,     0,
+      22,    23,    24,    25,    26,     0,    27,    28,    29,    30,
+      31,    32,     0,     0,     0,     0,    33,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    51,    52,    53,    79,     0,     0,     0,     0,    54,
-      55,     0,     0,    56,    16,     0,    17,    18,    19,    20,
-      21,    22,    23,   -74,     0,     0,    24,    25,    26,    27,
-      28,     0,    29,    30,    31,    32,    33,    34,     0,     0,
-       0,     0,    35,     0,     0,  -249,     0,     0,     0,     0,
-       0,     0,   167,   168,   169,   170,    36,     0,    37,    38,
-      39,    40,    41,    42,     0,     0,     0,     0,    43,    44,
-      45,    46,    47,    48,    49,   173,   174,   175,   176,   177,
-     178,   179,    50,     0,     0,     0,   180,   181,   182,   183,
-       0,     0,   184,     0,    51,    52,    53,    79,     0,     0,
-       0,     0,    54,    55,     0,     0,    56,    16,     0,    17,
-      18,    19,    20,    21,    22,    23,     0,     0,     0,    24,
-      25,    26,    27,    28,     0,    29,    30,    31,    32,    33,
-      34,     0,     0,     0,     0,    35,     0,     0,     0,     0,
-       0,     0,   167,   168,   169,   170,     0,     0,     0,    36,
-       0,    37,    38,    39,    40,    41,    42,     0,     0,     0,
-       0,    43,    44,    45,    46,    47,    48,    49,   176,   177,
-     178,   179,     0,     0,     0,    50,   180,   181,   182,   183,
-       0,     0,   184,     0,     0,     0,     0,    51,    52,    53,
-       0,     0,     0,     0,     0,    54,    55,     0,   -74,    56,
-      77,     0,    16,     0,    17,    18,    19,    20,    21,    22,
-      23,     0,     0,     0,   131,    25,    26,    27,    28,   109,
-      29,    30,    31,    32,    33,    34,     0,     0,     0,     0,
-      35,     0,     0,     0,     0,     0,     0,   167,   168,   169,
-     170,     0,     0,     0,    36,     0,    37,    38,    39,    40,
-      41,    42,     0,     0,     0,     0,    43,    44,    45,    46,
-      47,    48,    49,     0,   177,   178,   179,     0,     0,     0,
-      50,   180,   181,   182,   183,     0,     0,   184,     0,     0,
-       0,     0,    51,    52,    53,     0,     0,     0,     0,     0,
-      54,    55,     0,    77,    56,    16,     0,    17,    18,    19,
-      20,    21,    22,    23,     0,     0,     0,    24,    25,    26,
-      27,    28,     0,    29,    30,    31,    32,    33,    34,     0,
-       0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
-     167,  -249,   169,   170,     0,     0,     0,    36,     0,    37,
-      38,    39,    40,    41,    42,     0,     0,     0,     0,    43,
-      44,    45,    46,    47,    48,    49,     0,     0,   178,   179,
-       0,     0,     0,    50,   180,   181,   182,   183,     0,     0,
-     184,     0,     0,     0,     0,    51,    52,    53,     0,     0,
-       0,     0,     0,    54,    55,     0,     0,    56,    16,   104,
-      17,    18,    19,    20,    21,    22,    23,     0,     0,     0,
-      24,    25,    26,    27,    28,     0,    29,    30,    31,    32,
-      33,    34,     0,     0,     0,     0,    35,     0,     0,     0,
-       0,     0,     0,   167,   168,   169,   170,     0,     0,     0,
-      36,     0,    37,    38,    39,    40,    41,    42,     0,     0,
-       0,     0,    43,    44,    45,    46,    47,    48,    49,     0,
-       0,   178,   179,     0,     0,     0,    50,   180,   181,   182,
-     183,     0,     0,   184,     0,     0,     0,     0,    51,    52,
-      53,     0,     0,     0,     0,     0,    54,    55,     0,    16,
-      56,    17,    18,    19,    20,    21,    22,    23,   139,     0,
-       0,    24,    25,    26,    27,    28,     0,    29,    30,    31,
-      32,    33,    34,     0,     0,     0,     0,    35,     0,     0,
-       0,     0,     0,     0,  -249,     0,   169,   170,     0,     0,
-       0,    36,     0,    37,    38,    39,    40,    41,    42,     0,
-       0,     0,     0,    43,    44,    45,    46,    47,    48,    49,
-       0,     0,   178,   179,     0,     0,     0,    50,   180,   181,
-     182,   183,     0,     0,   184,     0,     0,     0,     0,    51,
-      52,    53,     0,     0,     0,     0,     0,    54,    55,     0,
-      16,    56,    17,    18,    19,    20,    21,    22,    23,     0,
-       0,     0,    24,    25,    26,    27,    28,     0,    29,    30,
-      31,    32,    33,    34,     0,     0,     0,     0,    35,     0,
-       0,     0,     0,     0,     0,     0,     0,   169,   170,     0,
-       0,     0,    36,     0,    37,    38,    39,    40,    41,    42,
-       0,     0,     0,     0,    43,    44,    45,    46,    47,    48,
-      49,     0,     0,   178,   179,     0,     0,     0,    50,   180,
-     181,   182,   183,     0,     0,   184,     0,     0,     0,     0,
-      51,    52,    53,     0,     0,     0,     0,     0,    54,    55,
-       0,   157,    56,    16,     0,    17,    18,    19,    20,    21,
-      22,    23,     0,     0,     0,    24,    25,    26,    27,    28,
-       0,    29,    30,    31,    32,    33,    34,     0,     0,     0,
-       0,    35,     0,     0,     0,     0,     0,     0,     0,     0,
-     169,   170,     0,     0,     0,    36,     0,    37,    38,    39,
-      40,    41,    42,     0,     0,     0,     0,    43,    44,    45,
-      46,    47,    48,    49,     0,     0,     0,   179,     0,     0,
-       0,    50,   180,   181,   182,   183,     0,     0,   184,     0,
-       0,     0,     0,    51,    52,    53,     0,     0,     0,     0,
-       0,    54,    55,     0,   232,    56,    16,     0,    17,    18,
-      19,    20,    21,    22,    23,     0,     0,     0,    24,    25,
-      26,    27,    28,     0,    29,    30,    31,    32,    33,    34,
-       0,     0,     0,     0,    35,   212,   213,   214,   215,     0,
-       0,     0,   216,     0,   217,     0,     0,     0,    36,     0,
-      37,    38,    39,    40,    41,    42,     0,     0,     0,     0,
-      43,    44,    45,    46,    47,    48,    49,     0,     0,   159,
-     160,   161,     0,     0,    50,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    51,    52,    53,     0,
-       0,     0,     0,     0,    54,    55,     0,   240,    56,    16,
-       0,    17,    18,    19,    20,    21,    22,    23,     0,     0,
-       0,    24,    25,    26,    27,    28,     0,    29,    30,    31,
-      32,    33,    34,     0,     0,     0,     0,    35,     0,     0,
+      34,     0,    35,    36,    37,    38,    39,    40,     0,     0,
+       0,     0,    41,    42,    43,    44,    45,    46,    47,     0,
+       0,     0,     0,     0,     0,     0,    48,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    49,    50,
+      51,     0,     0,     0,     0,     0,    52,    53,     0,     0,
+      54,   137,    55,    56,    16,     0,    17,    18,    19,    20,
+      21,     0,     0,    22,    23,    24,    25,    26,     0,    27,
+      28,    29,    30,    31,    32,     0,     0,     0,     0,    33,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    36,     0,    37,    38,    39,    40,    41,    42,     0,
-       0,     0,     0,    43,    44,    45,    46,    47,    48,    49,
-       0,     0,     0,     0,     0,     0,     0,    50,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    51,
-      52,    53,     0,     0,     0,     0,     0,    54,    55,     0,
-     252,    56,    16,     0,    17,    18,    19,    20,    21,    22,
-      23,     0,     0,     0,    24,    25,    26,    27,    28,     0,
-      29,    30,    31,    32,    33,    34,     0,     0,     0,     0,
-      35,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    36,     0,    37,    38,    39,    40,
-      41,    42,     0,     0,     0,     0,    43,    44,    45,    46,
-      47,    48,    49,     0,     0,     0,     0,     0,     0,     0,
-      50,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    51,    52,    53,     0,     0,     0,     0,     0,
-      54,    55,     0,   281,    56,    16,     0,    17,    18,    19,
-      20,    21,    22,    23,     0,     0,     0,    24,    25,    26,
-      27,    28,     0,    29,    30,    31,    32,    33,    34,     0,
-       0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    36,     0,    37,
-      38,    39,    40,    41,    42,     0,     0,     0,     0,    43,
-      44,    45,    46,    47,    48,    49,     0,     0,     0,     0,
-       0,     0,     0,    50,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    51,    52,    53,     0,     0,
-       0,     0,     0,    54,    55,     0,   348,    56,    16,     0,
-      17,    18,    19,    20,    21,    22,    23,     0,     0,     0,
-      24,    25,    26,    27,    28,     0,    29,    30,    31,    32,
-      33,    34,     0,     0,     0,     0,    35,     0,     0,     0,
+       0,     0,     0,    34,     0,    35,    36,    37,    38,    39,
+      40,     0,     0,     0,     0,    41,    42,    43,    44,    45,
+      46,    47,     0,     0,     0,     0,     0,     0,     0,    48,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      36,     0,    37,    38,    39,    40,    41,    42,     0,     0,
-       0,     0,    43,    44,    45,    46,    47,    48,    49,     0,
-       0,     0,     0,     0,   166,     0,    50,     0,     0,     0,
-       0,   167,   168,   169,   170,     0,     0,     0,    51,    52,
-      53,     0,     0,     0,     0,     0,    54,    55,     0,     0,
-      56,   171,   172,   339,   173,   174,   175,   176,   177,   178,
-     179,     0,     0,     0,     0,   180,   181,   182,   183,   166,
-       0,   184,     0,     0,     0,     0,   167,   168,   169,   170,
+       0,    49,    50,    51,     0,     0,     0,     0,     0,    52,
+      53,     0,   155,    54,     0,    55,    56,    16,     0,    17,
+      18,    19,    20,    21,     0,     0,    22,    23,    24,    25,
+      26,     0,    27,    28,    29,    30,    31,    32,     0,     0,
+       0,     0,    33,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    34,     0,    35,    36,
+      37,    38,    39,    40,     0,     0,     0,     0,    41,    42,
+      43,    44,    45,    46,    47,     0,     0,     0,     0,     0,
+       0,     0,    48,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    49,    50,    51,     0,     0,     0,
+       0,     0,    52,    53,     0,   232,    54,     0,    55,    56,
+      16,     0,    17,    18,    19,    20,    21,     0,     0,    22,
+      23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
+      32,     0,     0,     0,     0,    33,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
+       0,    35,    36,    37,    38,    39,    40,     0,     0,     0,
+       0,    41,    42,    43,    44,    45,    46,    47,     0,     0,
+       0,     0,     0,     0,     0,    48,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    49,    50,    51,
+       0,     0,     0,     0,     0,    52,    53,     0,   240,    54,
+       0,    55,    56,    16,     0,    17,    18,    19,    20,    21,
+       0,     0,    22,    23,    24,    25,    26,     0,    27,    28,
+      29,    30,    31,    32,     0,     0,     0,     0,    33,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   171,   172,     0,   173,
-     174,   175,   176,   177,   178,   179,     0,     0,     0,     0,
-     180,   181,   182,   183,   166,     0,   184,     0,     0,     0,
-       0,   167,   168,   169,   170,     0,     0,     0,     0,     0,
+       0,     0,    34,     0,    35,    36,    37,    38,    39,    40,
+       0,     0,     0,     0,    41,    42,    43,    44,    45,    46,
+      47,     0,     0,     0,     0,     0,     0,     0,    48,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   172,     0,   173,   174,   175,   176,   177,   178,
-     179,     0,     0,     0,     0,   180,   181,   182,   183,     0,
-       0,   184
+      49,    50,    51,     0,     0,     0,     0,     0,    52,    53,
+       0,   252,    54,     0,    55,    56,    16,     0,    17,    18,
+      19,    20,    21,     0,     0,    22,    23,    24,    25,    26,
+       0,    27,    28,    29,    30,    31,    32,     0,     0,     0,
+       0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    34,     0,    35,    36,    37,
+      38,    39,    40,     0,     0,     0,     0,    41,    42,    43,
+      44,    45,    46,    47,     0,     0,     0,     0,     0,     0,
+       0,    48,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    49,    50,    51,     0,     0,     0,     0,
+       0,    52,    53,     0,   281,    54,     0,    55,    56,    16,
+       0,    17,    18,    19,    20,    21,     0,     0,    22,    23,
+      24,    25,    26,     0,    27,    28,    29,    30,    31,    32,
+       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
+      35,    36,    37,    38,    39,    40,     0,     0,     0,     0,
+      41,    42,    43,    44,    45,    46,    47,     0,     0,     0,
+       0,     0,     0,     0,    48,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    49,    50,    51,     0,
+       0,     0,     0,     0,    52,    53,     0,   346,    54,     0,
+      55,    56,    16,     0,    17,    18,    19,    20,    21,     0,
+       0,    22,    23,    24,    25,    26,     0,    27,    28,    29,
+      30,    31,    32,     0,     0,     0,     0,    33,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    34,     0,    35,    36,    37,    38,    39,    40,     0,
+       0,     0,     0,    41,    42,    43,    44,    45,    46,    47,
+       0,     0,     0,     0,     0,     0,     0,    48,   166,     0,
+       0,     0,     0,     0,     0,   167,   168,   169,   170,    49,
+      50,    51,     0,     0,     0,     0,     0,    52,    53,     0,
+       0,    54,     0,    55,    56,   171,   172,   339,   173,   174,
+     175,   176,   177,   178,   179,     0,     0,     0,     0,   180,
+     181,   182,   183,   166,     0,   184,     0,     0,     0,     0,
+     167,   168,   169,   170,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     171,   172,     0,   173,   174,   175,   176,   177,   178,   179,
+       0,     0,     0,     0,   180,   181,   182,   183,     0,     0,
+     184
 };
 
-#define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-419)))
-
-#define yytable_value_is_error(Yytable_value) \
-  (!!((Yytable_value) == (-249)))
-
 static const yytype_int16 yycheck[] =
 {
-      15,   128,   308,   325,     9,    15,    48,    42,    48,   413,
-       9,    16,    11,    26,    10,    50,   117,    15,    16,    17,
-      11,    77,   440,    19,    20,    21,    22,    23,     0,    25,
-      26,    20,    19,    20,    21,    22,    23,    26,    25,    26,
-      45,     9,   143,    80,     9,    41,    42,    43,    44,    11,
-      15,    56,    76,    77,    78,    42,    43,     9,    23,    11,
-      70,    48,   308,    28,   310,   311,     9,   104,   124,    20,
-      21,    22,    23,    20,    25,    26,     9,    20,   102,    76,
-      77,    78,   117,    93,   502,   103,   408,    20,    80,   493,
-     103,    42,    43,   103,    23,   103,   223,    93,     9,    28,
-     135,    46,    47,    90,   103,   103,    23,    98,   143,    12,
-       9,   433,    11,   103,     9,   120,    15,    16,    17,    18,
-      19,   103,   127,   128,   103,    24,    12,   123,   103,    76,
-      77,    78,   128,     9,    12,    11,     9,   383,    11,   103,
-     145,   128,   198,   199,   200,   201,   202,     9,   204,    11,
-     206,   207,    48,   103,   159,   160,   161,   103,   163,   164,
-     165,   203,    12,   203,   103,     9,    65,    11,   103,    12,
-     416,    20,   418,    76,    77,    78,   103,   128,   193,   103,
-     185,   186,   187,   188,   189,   190,   191,   192,   102,   224,
-      76,    77,    78,    20,   500,   102,    10,   184,    76,    77,
-      78,   297,    20,   299,   103,    72,    11,   212,   213,   214,
-     215,   216,   217,   209,    23,    23,   203,    12,   223,   465,
-     103,    12,   323,   350,   103,    72,    76,    77,    78,    26,
-     235,    12,   478,    76,    77,    78,    12,   102,    10,   244,
-      11,    78,    17,    18,    18,   301,    15,    16,    17,    76,
-      77,    78,    18,   309,    18,    18,    18,    32,    76,    77,
-      78,    36,   103,    21,   269,   270,    41,   103,    23,    44,
-      20,    15,    47,   278,    49,   271,    51,    52,    53,    54,
-      55,    76,    77,    78,   271,    76,    77,    78,   323,    26,
-     103,   296,   297,   298,   299,    76,    77,    78,    20,   102,
-      76,    77,    78,   308,   360,   310,   311,   363,   364,    20,
-     411,    10,    10,   300,    10,    42,    43,    44,    45,    10,
-      10,   377,    49,    20,    51,    26,    76,    77,    78,    23,
-     335,   327,   102,    20,   376,   102,   376,   102,     9,   415,
-      10,   102,   102,   419,   103,   350,   422,   423,   102,    76,
-      77,    78,    20,   102,    76,    77,    78,    76,    77,    78,
-     436,   437,   102,   102,   102,    76,    77,    78,     9,   102,
-     446,    95,    96,    97,    98,   102,   411,   101,   383,    76,
-      77,    78,   387,   102,   460,    74,    20,   162,   464,   376,
-     466,   166,   167,   168,   169,   170,   171,   172,   173,   174,
-     175,   176,   177,   178,   179,   180,    15,    16,    17,   102,
-      19,   416,   427,   418,   444,   491,    76,    77,    78,   434,
-      63,     0,   498,   103,    76,    77,    78,   457,   458,     9,
-       9,   507,    11,    12,     9,    15,   432,   102,    18,   469,
-     445,    20,   102,    23,   459,   103,    20,    90,    28,   479,
-     102,   481,    95,    96,    97,    98,   102,   472,   101,    22,
-     465,    70,    73,    42,    43,    44,    45,   102,    12,   499,
-      49,   102,    51,   478,    98,    54,    96,    97,    98,   445,
-     495,   101,    61,    62,    63,    64,   500,    76,    77,    78,
-     195,    83,    35,   362,    76,    77,    78,    76,    77,    78,
-     409,    80,    81,    82,    83,    84,    85,    86,    87,    88,
-      89,    90,     0,   102,    -1,   376,    95,    96,    97,    98,
-     102,   203,   101,   102,    12,   104,    76,    77,    78,    90,
-      -1,    -1,    20,    -1,    95,    96,    97,    98,    -1,    -1,
-     101,    -1,    -1,    61,    62,    63,    64,    -1,    -1,    -1,
-      -1,    -1,   102,    -1,    42,    43,    44,    45,    -1,    -1,
-      -1,    49,    -1,    51,   339,    -1,    54,    -1,    86,    87,
-      88,    89,    90,    61,    62,    63,    64,    95,    96,    97,
-      98,    -1,    -1,   101,    -1,    -1,    -1,    -1,    76,    77,
-      78,    -1,    80,    81,    82,    83,    84,    85,    86,    87,
-      88,    89,    90,    -1,    -1,    -1,    -1,    95,    96,    97,
-      98,     0,     1,   101,   102,    -1,   104,    -1,    -1,    -1,
-       9,    -1,    11,    -1,    13,    14,    15,    16,    17,    18,
-      19,    20,    -1,    -1,    23,    24,    25,    26,    27,    -1,
-      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    -1,    -1,    -1,
-      49,    50,    51,    52,    53,    -1,    55,    56,    57,    58,
-      59,    60,    -1,    -1,    -1,    -1,    65,    66,    67,    68,
-      69,    70,    71,     3,     4,     5,     6,     7,     8,    -1,
-      79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    91,    92,    93,    -1,     0,     1,    -1,    -1,
-      99,   100,    -1,    -1,   103,     9,    -1,    11,    -1,    13,
-      14,    15,    16,    17,    18,    19,    20,    -1,    -1,    23,
-      24,    25,    26,    27,    -1,    29,    30,    31,    32,    33,
-      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
-      44,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
-      -1,    55,    56,    57,    58,    59,    60,    -1,    -1,    -1,
-      -1,    65,    66,    67,    68,    69,    70,    71,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    92,    93,
-      -1,    -1,     1,    -1,    -1,    99,   100,    -1,    -1,   103,
-       9,    10,    11,    -1,    13,    14,    15,    16,    17,    18,
-      19,    20,    -1,    -1,    23,    24,    25,    26,    27,    -1,
-      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    -1,    -1,    -1,
-      49,    50,    51,    52,    53,    -1,    55,    56,    57,    58,
-      59,    60,    -1,    -1,    -1,    -1,    65,    66,    67,    68,
-      69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    91,    92,    93,    -1,    -1,     1,    -1,    -1,
-      99,   100,    -1,    -1,   103,     9,    10,    11,    -1,    13,
-      14,    15,    16,    17,    18,    19,    20,    -1,    -1,    23,
-      24,    25,    26,    27,    -1,    29,    30,    31,    32,    33,
-      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
-      44,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
-      -1,    55,    56,    57,    58,    59,    60,    -1,    -1,    -1,
-      -1,    65,    66,    67,    68,    69,    70,    71,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    92,    93,
-      -1,    -1,     1,    -1,    -1,    99,   100,    -1,    -1,   103,
-       9,    10,    11,    -1,    13,    14,    15,    16,    17,    18,
-      19,    20,    -1,    -1,    23,    24,    25,    26,    27,    -1,
-      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    -1,    -1,    -1,
-      49,    50,    51,    52,    53,    -1,    55,    56,    57,    58,
-      59,    60,    -1,    -1,    -1,    -1,    65,    66,    67,    68,
-      69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    91,    92,    93,    -1,    -1,     1,    -1,    -1,
-      99,   100,    -1,    -1,   103,     9,    10,    11,    -1,    13,
-      14,    15,    16,    17,    18,    19,    20,    -1,    -1,    23,
-      24,    25,    26,    27,    -1,    29,    30,    31,    32,    33,
-      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
-      44,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
-      -1,    55,    56,    57,    58,    59,    60,    -1,    -1,    -1,
-      -1,    65,    66,    67,    68,    69,    70,    71,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    92,    93,
-      -1,    -1,     1,    -1,    -1,    99,   100,    -1,    -1,   103,
-       9,    10,    11,    -1,    13,    14,    15,    16,    17,    18,
-      19,    20,    -1,    -1,    23,    24,    25,    26,    27,    -1,
-      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    -1,    -1,    -1,
-      49,    50,    51,    52,    53,    -1,    55,    56,    57,    58,
-      59,    60,    -1,    -1,    -1,    -1,    65,    66,    67,    68,
-      69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    91,    92,    93,     1,    -1,    -1,    -1,    -1,
-      99,   100,    -1,     9,   103,    11,    -1,    13,    14,    15,
-      16,    17,    18,    19,    20,    -1,    -1,    23,    24,    25,
-      26,    27,    -1,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      -1,    -1,    -1,    49,    50,    51,    52,    53,    -1,    55,
-      56,    57,    58,    59,    60,    -1,    -1,    -1,    -1,    65,
-      66,    67,    68,    69,    70,    71,    -1,    -1,    74,    -1,
-      -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    91,    92,    93,     1,    -1,
-      -1,    -1,    -1,    99,   100,    -1,     9,   103,    11,    -1,
-      13,    14,    15,    16,    17,    18,    19,    20,    -1,    -1,
-      23,    24,    25,    26,    27,    -1,    29,    30,    31,    32,
+      15,   308,     9,   325,     9,    40,    46,    46,   115,     9,
+     126,    16,   413,    48,    10,     9,    15,    16,   308,    23,
+     310,   311,     0,    19,    20,    21,    20,    23,    24,    15,
+      16,    25,    11,    23,   141,    19,    20,    21,    43,    23,
+      24,     9,     9,    39,    40,    41,    42,    77,     9,    54,
+      11,    11,     9,    20,    11,   440,    40,    41,    25,    55,
+      56,    12,   100,    19,    20,    21,    20,    23,    24,    43,
+      44,    25,    56,   100,   104,    15,    16,    17,   100,   100,
+     115,     9,    12,    11,    40,    41,   408,    12,    77,     9,
+      46,    11,   493,   383,   101,     9,    92,   101,   133,    55,
+      56,   101,   100,   102,    12,     9,   141,   223,   102,   103,
+     100,   433,   100,   118,   100,    20,   102,   502,    67,    98,
+     125,   126,    73,    74,    75,   121,   416,    67,   418,    12,
+     126,   100,    45,    89,    12,   102,   100,    12,   143,   100,
+      12,    90,   126,    73,    74,    75,   101,   100,    73,    74,
+      75,   100,   100,   102,   159,   160,   161,   100,   163,   164,
+     165,   100,   102,   203,   203,    73,    74,    75,   100,    10,
+     126,    92,    93,    94,    95,   465,    99,    98,   193,    12,
+     185,   186,   187,   188,   189,   190,   191,   192,   478,   224,
+      73,    74,    75,   500,    11,    73,    74,    75,    73,    74,
+      75,    73,    74,    75,    73,    74,    75,   212,   213,   214,
+     215,   216,   217,   209,    99,    69,   323,     9,   223,    11,
+      73,    74,    75,    15,    16,    17,    20,    20,   184,    21,
+     235,     9,   101,    11,   350,   100,   297,    77,   299,   244,
+      73,    74,    75,   100,    17,    18,    69,   203,   101,    39,
+      40,    41,    42,    73,    74,    75,    46,    30,    48,    23,
+       9,    34,    11,    60,   269,   270,    39,    99,    10,    42,
+      62,   276,    45,    11,    47,    75,    49,    50,    51,    52,
+      53,   277,   122,    73,    74,    75,    18,   103,   323,   103,
+      87,   296,   297,   298,   299,    92,    93,    94,    95,   103,
+     103,    98,   103,   308,   411,   310,   311,    20,   100,    99,
+     102,   103,   100,   100,   444,    73,    74,    75,    73,    74,
+      75,   277,    73,    74,    75,   102,   100,   457,   458,    99,
+     335,   327,    23,    10,   415,    10,   376,   376,   419,   469,
+      10,   422,   423,   101,   300,   350,   101,    10,    10,   479,
+     101,   481,    73,    74,    75,   436,   437,    23,   198,   199,
+     200,   201,   202,    20,   204,   446,   206,   207,    99,   499,
+       3,     4,     5,     6,     7,     8,   411,    99,   383,   460,
+     101,    99,   387,   464,    99,   466,    73,    74,    75,   162,
+      73,    74,    75,   166,   167,   168,   169,   170,   171,   172,
+     173,   174,   175,   176,   177,   178,   179,   180,   100,    99,
+     491,   416,   427,   418,   101,   101,    99,   498,    99,   434,
+     376,    73,    74,    75,     9,    99,   507,    99,    99,    10,
+      58,    59,    60,    61,    99,     9,   432,    73,    74,    75,
+     445,   101,    71,    99,   459,    99,   101,    99,    73,    74,
+      75,   100,    58,    59,    60,    61,    99,   472,    86,    87,
+     465,   301,   100,    99,    92,    93,    94,    95,     9,   309,
+      98,   101,    99,   478,    99,    51,    70,    19,    99,   494,
+      86,    87,    58,    59,    60,    61,    92,    93,    94,    95,
+       0,    99,    98,    12,    98,    73,    74,    75,   445,     9,
+     195,    11,    12,    79,    33,    81,    82,    83,    84,    85,
+      86,    87,    82,    73,    74,    75,    92,    93,    94,    95,
+     360,    99,    98,   363,   364,   500,    73,    74,    75,    39,
+      40,    41,    42,   362,   376,   409,    46,   377,    48,    99,
+      -1,    51,    93,    94,    95,   203,    -1,    98,    58,    59,
+      60,    61,    99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    73,    74,    75,   339,    77,    78,    79,
+      80,    81,    82,    83,    84,    85,    86,    87,     0,    -1,
+      -1,    -1,    92,    93,    94,    95,    -1,    -1,    98,    99,
+      12,   101,    87,    -1,   104,    -1,    -1,    92,    93,    94,
+      95,    -1,    -1,    98,    -1,    -1,    58,    59,    60,    61,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    39,    40,    41,
+      42,    -1,    -1,    -1,    46,    -1,    48,    -1,    -1,    51,
+      -1,    83,    84,    85,    86,    87,    58,    59,    60,    61,
+      92,    93,    94,    95,    -1,    -1,    98,    -1,    -1,    -1,
+      -1,    73,    74,    75,    -1,    77,    78,    79,    80,    81,
+      82,    83,    84,    85,    86,    87,    -1,    -1,    -1,    -1,
+      92,    93,    94,    95,     0,     1,    98,    99,    -1,   101,
+      -1,    -1,   104,     9,    -1,    11,    -1,    13,    14,    15,
+      16,    17,    -1,    -1,    20,    21,    22,    23,    24,    -1,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
+      36,    37,    38,    39,    40,    41,    42,    -1,    -1,    -1,
+      46,    47,    48,    49,    50,    -1,    52,    53,    54,    55,
+      56,    57,    -1,    -1,    -1,    -1,    62,    63,    64,    65,
+      66,    67,    68,    -1,    39,    40,    41,    42,    -1,    -1,
+      76,    46,    -1,    48,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    88,    89,    90,    -1,    -1,    -1,    -1,    -1,
+      96,    97,     0,     1,   100,   101,   102,   103,    73,    74,
+      75,     9,    -1,    11,    -1,    13,    14,    15,    16,    17,
+      -1,    -1,    20,    21,    22,    23,    24,    -1,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    -1,    -1,    -1,    46,    47,
+      48,    49,    50,    -1,    52,    53,    54,    55,    56,    57,
+      -1,    -1,    -1,    -1,    62,    63,    64,    65,    66,    67,
+      68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      88,    89,    90,    -1,    -1,    -1,    -1,    -1,    96,    97,
+       1,    -1,   100,   101,   102,   103,    -1,    -1,     9,    10,
+      11,    -1,    13,    14,    15,    16,    17,    -1,    -1,    20,
+      21,    22,    23,    24,    -1,    26,    27,    28,    29,    30,
+      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
+      41,    42,    -1,    -1,    -1,    46,    47,    48,    49,    50,
+      -1,    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,
+      -1,    62,    63,    64,    65,    66,    67,    68,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,
+      -1,    -1,    -1,    -1,    -1,    96,    97,     1,    -1,   100,
+     101,   102,   103,    -1,    -1,     9,    10,    11,    -1,    13,
+      14,    15,    16,    17,    -1,    -1,    20,    21,    22,    23,
+      24,    -1,    26,    27,    28,    29,    30,    31,    32,    33,
+      34,    35,    36,    37,    38,    39,    40,    41,    42,    -1,
+      -1,    -1,    46,    47,    48,    49,    50,    -1,    52,    53,
+      54,    55,    56,    57,    -1,    -1,    -1,    -1,    62,    63,
+      64,    65,    66,    67,    68,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    88,    89,    90,    -1,    -1,    -1,
+      -1,    -1,    96,    97,     1,    -1,   100,   101,   102,   103,
+      -1,    -1,     9,    10,    11,    -1,    13,    14,    15,    16,
+      17,    -1,    -1,    20,    21,    22,    23,    24,    -1,    26,
+      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
+      37,    38,    39,    40,    41,    42,    -1,    -1,    -1,    46,
+      47,    48,    49,    50,    -1,    52,    53,    54,    55,    56,
+      57,    -1,    -1,    -1,    -1,    62,    63,    64,    65,    66,
+      67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    88,    89,    90,    -1,    -1,    -1,    -1,    -1,    96,
+      97,     1,    -1,   100,   101,   102,   103,    -1,    -1,     9,
+      10,    11,    -1,    13,    14,    15,    16,    17,    -1,    -1,
+      20,    21,    22,    23,    24,    -1,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
+      40,    41,    42,    -1,    -1,    -1,    46,    47,    48,    49,
+      50,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
+      -1,    -1,    62,    63,    64,    65,    66,    67,    68,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,
+      90,    -1,    -1,    -1,    -1,    -1,    96,    97,     1,    -1,
+     100,   101,   102,   103,    -1,    -1,     9,    10,    11,    -1,
+      13,    14,    15,    16,    17,    -1,    -1,    20,    21,    22,
+      23,    24,    -1,    26,    27,    28,    29,    30,    31,    32,
       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    -1,    -1,    -1,    49,    50,    51,    52,
-      53,    -1,    55,    56,    57,    58,    59,    60,    -1,    -1,
-      -1,    -1,    65,    66,    67,    68,    69,    70,    71,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    79,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    92,
-      93,     1,    -1,    -1,    -1,    -1,    99,   100,    -1,     9,
-     103,    11,    -1,    13,    14,    15,    16,    17,    18,    19,
-      20,    -1,    -1,    23,    24,    25,    26,    27,    -1,    29,
-      30,    31,    32,    33,    34,    35,    -1,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    -1,    -1,    -1,    49,
-      50,    51,    52,    53,    -1,    55,    56,    57,    58,    59,
-      60,    -1,    -1,    -1,    -1,    65,    66,    67,    68,    69,
-      70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
+      -1,    -1,    -1,    46,    47,    48,    49,    50,    -1,    52,
+      53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,    62,
+      63,    64,    65,    66,    67,    68,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    88,    89,    90,    -1,    -1,
+      -1,    -1,    -1,    96,    97,     1,    -1,   100,   101,   102,
+     103,    -1,    -1,     9,    -1,    11,    -1,    13,    14,    15,
+      16,    17,    -1,    -1,    20,    21,    22,    23,    24,    -1,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
+      36,    37,    38,    39,    40,    41,    42,    -1,    -1,    -1,
+      46,    47,    48,    49,    50,    -1,    52,    53,    54,    55,
+      56,    57,    -1,    -1,    -1,    -1,    62,    63,    64,    65,
+      66,    67,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,
+      76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    88,    89,    90,    -1,    -1,    -1,    -1,    -1,
+      96,    97,     1,    -1,   100,   101,   102,   103,    -1,    -1,
+       9,    -1,    11,    -1,    13,    14,    15,    16,    17,    -1,
+      -1,    20,    21,    22,    23,    24,    -1,    26,    27,    28,
+      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
+      39,    40,    41,    42,    -1,    -1,    -1,    46,    47,    48,
+      49,    50,    -1,    52,    53,    54,    55,    56,    57,    -1,
+      -1,    -1,    -1,    62,    63,    64,    65,    66,    67,    68,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
+      89,    90,    -1,    -1,    -1,    -1,    -1,    96,    97,     1,
+      -1,   100,   101,   102,   103,    -1,    -1,     9,    -1,    11,
+      -1,    13,    14,    15,    16,    17,    -1,    -1,    20,    21,
+      22,    23,    24,    -1,    26,    27,    28,    29,    30,    31,
+      32,    -1,    34,    35,    36,    37,    38,    39,    40,    41,
+      42,    -1,    -1,    -1,    46,    47,    48,    49,    50,    -1,
+      52,    53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,
+      62,    63,    64,    65,    66,    67,    68,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    -1,
+      -1,    -1,     1,    -1,    96,    97,    -1,    -1,   100,   101,
+     102,   103,    11,    -1,    13,    14,    15,    16,    17,    -1,
+      -1,    20,    21,    22,    23,    24,    -1,    26,    27,    28,
+      29,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,
+      51,    -1,    -1,    -1,    -1,    -1,    -1,    58,    59,    60,
+      61,    50,    -1,    52,    53,    54,    55,    56,    57,    -1,
+      -1,    -1,    -1,    62,    63,    64,    65,    66,    67,    68,
+      81,    82,    83,    84,    85,    86,    87,    76,    -1,    -1,
+      -1,    92,    93,    94,    95,    -1,    -1,    98,    -1,    88,
+      89,    90,    -1,    -1,    -1,     1,    -1,    96,    97,    -1,
+      -1,   100,   101,   102,   103,    11,    -1,    13,    14,    15,
+      16,    17,    -1,    -1,    20,    21,    22,    23,    24,    -1,
+      26,    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,
+      36,    -1,    -1,    -1,    -1,    -1,    -1,    58,    59,    60,
+      61,    -1,    -1,    -1,    50,    -1,    52,    53,    54,    55,
+      56,    57,    -1,    -1,    -1,    -1,    62,    63,    64,    65,
+      66,    67,    68,    84,    85,    86,    87,    -1,    -1,    -1,
+      76,    92,    93,    94,    95,    -1,    -1,    98,    -1,    -1,
+      -1,    -1,    88,    89,    90,    -1,    -1,    -1,    -1,    -1,
+      96,    97,    -1,    99,   100,    -1,   102,   103,     9,    -1,
+      11,    -1,    13,    14,    15,    16,    17,    -1,    -1,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,
+      -1,    -1,    58,    59,    60,    61,    -1,    -1,    -1,    50,
+      -1,    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,
+      -1,    62,    63,    64,    65,    66,    67,    68,    -1,    85,
+      86,    87,    -1,    -1,    -1,    76,    92,    93,    94,    95,
+      -1,    -1,    98,    -1,    -1,    -1,    -1,    88,    89,    90,
+      -1,    -1,    -1,    -1,    -1,    96,    97,    -1,    -1,   100,
+      -1,   102,   103,     9,    -1,    11,    -1,    13,    14,    15,
+      16,    17,    -1,    -1,    20,    21,    22,    23,    24,    -1,
+      26,    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,
+      36,    -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,    60,
+      61,    -1,    -1,    -1,    50,    -1,    52,    53,    54,    55,
+      56,    57,    -1,    -1,    -1,    -1,    62,    63,    64,    65,
+      66,    67,    68,    -1,    -1,    86,    87,    -1,    -1,    -1,
+      76,    92,    93,    94,    95,    -1,    -1,    98,    -1,    -1,
+      -1,    -1,    88,    89,    90,    -1,    -1,    -1,    -1,    -1,
+      96,    97,    60,    61,   100,    -1,   102,   103,    11,    12,
+      13,    14,    15,    16,    17,    -1,    -1,    20,    21,    22,
+      23,    24,    -1,    26,    27,    28,    29,    30,    31,    87,
+      -1,    -1,    -1,    36,    92,    93,    94,    95,    -1,    -1,
+      98,    -1,    60,    61,    -1,    -1,    -1,    50,    -1,    52,
+      53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,    62,
+      63,    64,    65,    66,    67,    68,    -1,    -1,    86,    87,
+      -1,    -1,    -1,    76,    92,    93,    94,    95,    -1,    -1,
+      98,    -1,    -1,    -1,    -1,    88,    89,    90,    -1,    -1,
+      -1,    -1,    -1,    96,    97,    -1,    -1,   100,    -1,   102,
+     103,    11,    -1,    13,    14,    15,    16,    17,    -1,    -1,
+      20,    21,    22,    23,    24,    -1,    26,    27,    28,    29,
+      30,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      50,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
+      -1,    -1,    62,    63,    64,    65,    66,    67,    68,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,
+      90,    -1,    -1,    -1,    -1,    -1,    96,    97,    -1,    -1,
+     100,   101,   102,   103,    11,    -1,    13,    14,    15,    16,
+      17,    -1,    -1,    20,    21,    22,    23,    24,    -1,    26,
+      27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    50,    -1,    52,    53,    54,    55,    56,
+      57,    -1,    -1,    -1,    -1,    62,    63,    64,    65,    66,
+      67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    91,    92,    93,     1,    -1,    -1,    -1,    -1,    99,
-     100,    -1,    -1,   103,    11,    -1,    13,    14,    15,    16,
-      17,    18,    19,    20,    -1,    -1,    23,    24,    25,    26,
-      27,    -1,    29,    30,    31,    32,    33,    34,    -1,    -1,
-      -1,    -1,    39,    -1,    -1,    54,    -1,    -1,    -1,    -1,
-      -1,    -1,    61,    62,    63,    64,    53,    -1,    55,    56,
-      57,    58,    59,    60,    -1,    -1,    -1,    -1,    65,    66,
-      67,    68,    69,    70,    71,    84,    85,    86,    87,    88,
-      89,    90,    79,    -1,    -1,    -1,    95,    96,    97,    98,
-      -1,    -1,   101,    -1,    91,    92,    93,     1,    -1,    -1,
-      -1,    -1,    99,   100,    -1,    -1,   103,    11,    -1,    13,
-      14,    15,    16,    17,    18,    19,    -1,    -1,    -1,    23,
-      24,    25,    26,    27,    -1,    29,    30,    31,    32,    33,
-      34,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,
-      -1,    -1,    61,    62,    63,    64,    -1,    -1,    -1,    53,
-      -1,    55,    56,    57,    58,    59,    60,    -1,    -1,    -1,
-      -1,    65,    66,    67,    68,    69,    70,    71,    87,    88,
-      89,    90,    -1,    -1,    -1,    79,    95,    96,    97,    98,
-      -1,    -1,   101,    -1,    -1,    -1,    -1,    91,    92,    93,
-      -1,    -1,    -1,    -1,    -1,    99,   100,    -1,   102,   103,
-       9,    -1,    11,    -1,    13,    14,    15,    16,    17,    18,
-      19,    -1,    -1,    -1,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
-      39,    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,    63,
-      64,    -1,    -1,    -1,    53,    -1,    55,    56,    57,    58,
-      59,    60,    -1,    -1,    -1,    -1,    65,    66,    67,    68,
-      69,    70,    71,    -1,    88,    89,    90,    -1,    -1,    -1,
-      79,    95,    96,    97,    98,    -1,    -1,   101,    -1,    -1,
-      -1,    -1,    91,    92,    93,    -1,    -1,    -1,    -1,    -1,
-      99,   100,    -1,     9,   103,    11,    -1,    13,    14,    15,
-      16,    17,    18,    19,    -1,    -1,    -1,    23,    24,    25,
-      26,    27,    -1,    29,    30,    31,    32,    33,    34,    -1,
-      -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,
-      61,    62,    63,    64,    -1,    -1,    -1,    53,    -1,    55,
-      56,    57,    58,    59,    60,    -1,    -1,    -1,    -1,    65,
-      66,    67,    68,    69,    70,    71,    -1,    -1,    89,    90,
-      -1,    -1,    -1,    79,    95,    96,    97,    98,    -1,    -1,
-     101,    -1,    -1,    -1,    -1,    91,    92,    93,    -1,    -1,
-      -1,    -1,    -1,    99,   100,    -1,    -1,   103,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    -1,    -1,    -1,
-      23,    24,    25,    26,    27,    -1,    29,    30,    31,    32,
-      33,    34,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,
-      -1,    -1,    -1,    61,    62,    63,    64,    -1,    -1,    -1,
-      53,    -1,    55,    56,    57,    58,    59,    60,    -1,    -1,
-      -1,    -1,    65,    66,    67,    68,    69,    70,    71,    -1,
-      -1,    89,    90,    -1,    -1,    -1,    79,    95,    96,    97,
-      98,    -1,    -1,   101,    -1,    -1,    -1,    -1,    91,    92,
-      93,    -1,    -1,    -1,    -1,    -1,    99,   100,    -1,    11,
-     103,    13,    14,    15,    16,    17,    18,    19,    20,    -1,
-      -1,    23,    24,    25,    26,    27,    -1,    29,    30,    31,
-      32,    33,    34,    -1,    -1,    -1,    -1,    39,    -1,    -1,
-      -1,    -1,    -1,    -1,    61,    -1,    63,    64,    -1,    -1,
-      -1,    53,    -1,    55,    56,    57,    58,    59,    60,    -1,
-      -1,    -1,    -1,    65,    66,    67,    68,    69,    70,    71,
-      -1,    -1,    89,    90,    -1,    -1,    -1,    79,    95,    96,
-      97,    98,    -1,    -1,   101,    -1,    -1,    -1,    -1,    91,
-      92,    93,    -1,    -1,    -1,    -1,    -1,    99,   100,    -1,
-      11,   103,    13,    14,    15,    16,    17,    18,    19,    -1,
-      -1,    -1,    23,    24,    25,    26,    27,    -1,    29,    30,
-      31,    32,    33,    34,    -1,    -1,    -1,    -1,    39,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    64,    -1,
-      -1,    -1,    53,    -1,    55,    56,    57,    58,    59,    60,
-      -1,    -1,    -1,    -1,    65,    66,    67,    68,    69,    70,
-      71,    -1,    -1,    89,    90,    -1,    -1,    -1,    79,    95,
-      96,    97,    98,    -1,    -1,   101,    -1,    -1,    -1,    -1,
-      91,    92,    93,    -1,    -1,    -1,    -1,    -1,    99,   100,
+      -1,    88,    89,    90,    -1,    -1,    -1,    -1,    -1,    96,
+      97,    -1,    99,   100,    -1,   102,   103,    11,    -1,    13,
+      14,    15,    16,    17,    -1,    -1,    20,    21,    22,    23,
+      24,    -1,    26,    27,    28,    29,    30,    31,    -1,    -1,
+      -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,    52,    53,
+      54,    55,    56,    57,    -1,    -1,    -1,    -1,    62,    63,
+      64,    65,    66,    67,    68,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    88,    89,    90,    -1,    -1,    -1,
+      -1,    -1,    96,    97,    -1,    99,   100,    -1,   102,   103,
+      11,    -1,    13,    14,    15,    16,    17,    -1,    -1,    20,
+      21,    22,    23,    24,    -1,    26,    27,    28,    29,    30,
+      31,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,
+      -1,    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,
+      -1,    62,    63,    64,    65,    66,    67,    68,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,
+      -1,    -1,    -1,    -1,    -1,    96,    97,    -1,    99,   100,
       -1,   102,   103,    11,    -1,    13,    14,    15,    16,    17,
-      18,    19,    -1,    -1,    -1,    23,    24,    25,    26,    27,
-      -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
-      -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      63,    64,    -1,    -1,    -1,    53,    -1,    55,    56,    57,
-      58,    59,    60,    -1,    -1,    -1,    -1,    65,    66,    67,
-      68,    69,    70,    71,    -1,    -1,    -1,    90,    -1,    -1,
-      -1,    79,    95,    96,    97,    98,    -1,    -1,   101,    -1,
-      -1,    -1,    -1,    91,    92,    93,    -1,    -1,    -1,    -1,
-      -1,    99,   100,    -1,   102,   103,    11,    -1,    13,    14,
-      15,    16,    17,    18,    19,    -1,    -1,    -1,    23,    24,
-      25,    26,    27,    -1,    29,    30,    31,    32,    33,    34,
-      -1,    -1,    -1,    -1,    39,    42,    43,    44,    45,    -1,
-      -1,    -1,    49,    -1,    51,    -1,    -1,    -1,    53,    -1,
-      55,    56,    57,    58,    59,    60,    -1,    -1,    -1,    -1,
-      65,    66,    67,    68,    69,    70,    71,    -1,    -1,    76,
-      77,    78,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    91,    92,    93,    -1,
-      -1,    -1,    -1,    -1,    99,   100,    -1,   102,   103,    11,
-      -1,    13,    14,    15,    16,    17,    18,    19,    -1,    -1,
-      -1,    23,    24,    25,    26,    27,    -1,    29,    30,    31,
-      32,    33,    34,    -1,    -1,    -1,    -1,    39,    -1,    -1,
+      -1,    -1,    20,    21,    22,    23,    24,    -1,    26,    27,
+      28,    29,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    53,    -1,    55,    56,    57,    58,    59,    60,    -1,
-      -1,    -1,    -1,    65,    66,    67,    68,    69,    70,    71,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,
-      92,    93,    -1,    -1,    -1,    -1,    -1,    99,   100,    -1,
-     102,   103,    11,    -1,    13,    14,    15,    16,    17,    18,
-      19,    -1,    -1,    -1,    23,    24,    25,    26,    27,    -1,
-      29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
-      39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    53,    -1,    55,    56,    57,    58,
-      59,    60,    -1,    -1,    -1,    -1,    65,    66,    67,    68,
-      69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    91,    92,    93,    -1,    -1,    -1,    -1,    -1,
-      99,   100,    -1,   102,   103,    11,    -1,    13,    14,    15,
-      16,    17,    18,    19,    -1,    -1,    -1,    23,    24,    25,
-      26,    27,    -1,    29,    30,    31,    32,    33,    34,    -1,
-      -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    53,    -1,    55,
-      56,    57,    58,    59,    60,    -1,    -1,    -1,    -1,    65,
-      66,    67,    68,    69,    70,    71,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    91,    92,    93,    -1,    -1,
-      -1,    -1,    -1,    99,   100,    -1,   102,   103,    11,    -1,
-      13,    14,    15,    16,    17,    18,    19,    -1,    -1,    -1,
-      23,    24,    25,    26,    27,    -1,    29,    30,    31,    32,
-      33,    34,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,
+      -1,    -1,    50,    -1,    52,    53,    54,    55,    56,    57,
+      -1,    -1,    -1,    -1,    62,    63,    64,    65,    66,    67,
+      68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      53,    -1,    55,    56,    57,    58,    59,    60,    -1,    -1,
-      -1,    -1,    65,    66,    67,    68,    69,    70,    71,    -1,
-      -1,    -1,    -1,    -1,    54,    -1,    79,    -1,    -1,    -1,
-      -1,    61,    62,    63,    64,    -1,    -1,    -1,    91,    92,
-      93,    -1,    -1,    -1,    -1,    -1,    99,   100,    -1,    -1,
-     103,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-      90,    -1,    -1,    -1,    -1,    95,    96,    97,    98,    54,
-      -1,   101,    -1,    -1,    -1,    -1,    61,    62,    63,    64,
+      88,    89,    90,    -1,    -1,    -1,    -1,    -1,    96,    97,
+      -1,    99,   100,    -1,   102,   103,    11,    -1,    13,    14,
+      15,    16,    17,    -1,    -1,    20,    21,    22,    23,    24,
+      -1,    26,    27,    28,    29,    30,    31,    -1,    -1,    -1,
+      -1,    36,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    50,    -1,    52,    53,    54,
+      55,    56,    57,    -1,    -1,    -1,    -1,    62,    63,    64,
+      65,    66,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    88,    89,    90,    -1,    -1,    -1,    -1,
+      -1,    96,    97,    -1,    99,   100,    -1,   102,   103,    11,
+      -1,    13,    14,    15,    16,    17,    -1,    -1,    20,    21,
+      22,    23,    24,    -1,    26,    27,    28,    29,    30,    31,
+      -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,
+      52,    53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,
+      62,    63,    64,    65,    66,    67,    68,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    -1,
+      -1,    -1,    -1,    -1,    96,    97,    -1,    99,   100,    -1,
+     102,   103,    11,    -1,    13,    14,    15,    16,    17,    -1,
+      -1,    20,    21,    22,    23,    24,    -1,    26,    27,    28,
+      29,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,    84,
-      85,    86,    87,    88,    89,    90,    -1,    -1,    -1,    -1,
-      95,    96,    97,    98,    54,    -1,   101,    -1,    -1,    -1,
-      -1,    61,    62,    63,    64,    -1,    -1,    -1,    -1,    -1,
+      -1,    50,    -1,    52,    53,    54,    55,    56,    57,    -1,
+      -1,    -1,    -1,    62,    63,    64,    65,    66,    67,    68,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    51,    -1,
+      -1,    -1,    -1,    -1,    -1,    58,    59,    60,    61,    88,
+      89,    90,    -1,    -1,    -1,    -1,    -1,    96,    97,    -1,
+      -1,   100,    -1,   102,   103,    78,    79,    80,    81,    82,
+      83,    84,    85,    86,    87,    -1,    -1,    -1,    -1,    92,
+      93,    94,    95,    51,    -1,    98,    -1,    -1,    -1,    -1,
+      58,    59,    60,    61,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    82,    -1,    84,    85,    86,    87,    88,    89,
-      90,    -1,    -1,    -1,    -1,    95,    96,    97,    98,    -1,
-      -1,   101
+      78,    79,    -1,    81,    82,    83,    84,    85,    86,    87,
+      -1,    -1,    -1,    -1,    92,    93,    94,    95,    -1,    -1,
+      98
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1082,55 +1087,55 @@ static const yytype_uint8 yystos[] =
 {
        0,     3,     4,     5,     6,     7,     8,   106,   107,   108,
      109,   110,   111,   112,     0,   115,    11,    13,    14,    15,
-      16,    17,    18,    19,    23,    24,    25,    26,    27,    29,
-      30,    31,    32,    33,    34,    39,    53,    55,    56,    57,
-      58,    59,    60,    65,    66,    67,    68,    69,    70,    71,
-      79,    91,    92,    93,    99,   100,   103,   153,   154,   155,
+      16,    17,    20,    21,    22,    23,    24,    26,    27,    28,
+      29,    30,    31,    36,    50,    52,    53,    54,    55,    56,
+      57,    62,    63,    64,    65,    66,    67,    68,    76,    88,
+      89,    90,    96,    97,   100,   102,   103,   153,   154,   155,
      158,   159,   160,   161,   162,   163,   165,   168,   173,   174,
      175,   176,   177,   178,   179,   180,   181,     9,   113,     1,
-      20,    35,    37,    38,    40,    41,    42,    43,    44,    45,
-      49,    50,    51,    52,   113,   122,   132,   153,    36,   120,
-     121,   122,   118,   118,    12,   153,   163,   163,    23,    28,
-     113,   174,   182,   182,   182,   182,   182,   182,   182,   164,
-      11,   103,   163,   144,   144,   163,   103,   103,   103,   113,
-     163,    23,   154,   167,   174,   182,   182,   113,   163,    20,
-     153,    23,    28,   146,   163,   103,   166,   174,   175,   176,
-     163,   154,   163,   163,   163,   163,   163,   102,   153,    76,
-      77,    78,    80,     9,    11,   103,    54,    61,    62,    63,
-      64,    81,    82,    84,    85,    86,    87,    88,    89,    90,
-      95,    96,    97,    98,   101,   103,     9,    11,     9,    11,
-       9,    11,     9,   115,   145,   146,    23,   143,   103,   103,
-     103,   103,    70,    93,   103,   174,   103,   103,   113,    48,
-     134,    20,    42,    43,    44,    45,    49,    51,   121,   122,
-     120,    12,   167,   103,   103,   153,   102,   113,    26,   115,
-     147,   102,   102,   153,   168,   182,   154,    10,    20,   167,
-     102,   153,    72,   149,    11,   102,   153,   153,   153,   163,
-     153,   153,   102,   153,   163,   163,   163,   163,   163,   163,
+      32,    34,    35,    37,    38,    39,    40,    41,    42,    46,
+      47,    48,    49,   101,   113,   122,   132,   153,    33,   120,
+     121,   122,   118,   118,    12,   153,   163,   163,    20,    25,
+     113,   174,   182,   182,   182,   182,   182,   164,    11,   100,
+     163,   144,   144,   163,   100,   100,   100,   113,   163,    20,
+     154,   167,   174,   182,   182,   113,   163,   101,   153,    20,
+      25,   146,   163,   100,   166,   174,   175,   176,   163,   154,
+     163,   163,   163,   163,   163,    99,   153,   182,   182,    73,
+      74,    75,    77,     9,    11,   100,    51,    58,    59,    60,
+      61,    78,    79,    81,    82,    83,    84,    85,    86,    87,
+      92,    93,    94,    95,    98,   100,     9,    11,     9,    11,
+       9,    11,     9,   115,   145,   146,    20,   143,   100,   100,
+     100,   100,    67,    90,   100,   174,   100,   100,   113,    45,
+     134,   101,    39,    40,    41,    42,    46,    48,   121,   122,
+     120,    12,   167,   100,   100,   153,    99,   113,    23,   115,
+     147,    99,    99,   153,   168,   182,   154,    10,   101,   167,
+      99,   153,    69,   149,    11,    99,   153,   153,   153,   163,
+     153,   153,    99,   153,   163,   163,   163,   163,   163,   163,
      163,   163,   163,   163,   163,   163,   163,   163,   163,     9,
-      11,    15,    16,    17,    18,    19,    24,    65,   103,   157,
-     174,   102,   153,   153,   153,   153,   153,   153,   153,   153,
-     118,    23,   142,   143,    23,   125,   115,   115,   115,   115,
-     115,    70,   171,   172,   173,   174,   175,   176,   115,   103,
+      11,    15,    16,    17,    21,    62,   100,   102,   103,   157,
+     174,    99,   153,   153,   153,   153,   153,   153,   153,   153,
+     118,    20,   142,   143,    20,   125,   115,   115,   115,   115,
+     115,    67,   171,   172,   173,   174,   175,   176,   115,   100,
      115,   115,   113,   153,   138,   153,   153,   153,   153,   153,
-     168,   154,    12,   156,   103,   150,    72,   148,   102,   102,
-     153,    10,   102,    26,   153,    11,    20,    12,   102,    83,
-     153,   153,    18,    18,    18,    18,    18,    18,   102,   153,
-     103,   102,    20,    12,    20,    12,    20,    12,    20,    10,
-      21,   114,   123,   124,     9,    20,    23,   137,   153,   138,
-     139,   153,   138,   141,   170,   174,   115,   103,   132,   136,
-     139,   140,   153,   115,   139,   139,   102,   104,   169,   167,
-     151,   148,    26,   113,   102,    12,   153,    10,   163,    20,
-      12,   102,   168,    10,    10,    10,    10,   115,   147,   115,
-     115,    23,   102,   102,   102,   102,   103,   171,   115,   102,
-      20,   139,   102,   102,   153,   102,   102,     9,    12,    10,
-     102,    20,   148,   150,   129,   167,   135,   135,     9,   116,
-     116,   139,   128,   139,   116,   126,   102,   116,   116,   118,
-      74,    20,   113,   152,   148,   118,    20,   116,   116,   117,
-      46,    47,   133,   133,   102,   103,   102,   134,   137,   116,
-      10,   119,     9,    10,   134,   134,   118,   116,   103,   116,
-     139,   116,    20,   134,    20,    26,   130,   118,    10,   139,
-     134,   102,   134,   127,    22,    73,   131,    10,   102,   116,
-     135,   118,   116,   134,   140,    74,   133,   102,   116
+     168,   154,    12,   156,   100,   150,    69,   148,    99,    99,
+     153,    10,    99,    23,   153,    11,   101,    12,    99,    80,
+     153,   153,   103,   103,   103,   103,    99,   153,   103,   103,
+     100,    99,   101,    12,   101,    12,   101,    12,   101,    10,
+      18,   114,   123,   124,     9,   101,    20,   137,   153,   138,
+     139,   153,   138,   141,   170,   174,   115,   100,   132,   136,
+     139,   140,   153,   115,   139,   139,    99,   104,   169,   167,
+     151,   148,    23,   113,    99,    12,   153,    10,   163,   101,
+      12,    99,   168,    10,    10,    10,    10,   115,   147,   115,
+     115,    20,    99,    99,    99,    99,   100,   171,   115,    99,
+     101,   139,    99,    99,   153,    99,    99,     9,    12,    10,
+      99,   101,   148,   150,   129,   167,   135,   135,     9,   116,
+     116,   139,   128,   139,   116,   126,    99,   116,   116,   118,
+      71,   101,   113,   152,   148,   118,   101,   116,   116,   117,
+      43,    44,   133,   133,    99,   100,    99,   134,   137,   116,
+      10,   119,     9,    10,   134,   134,   118,   116,   100,   116,
+     139,   116,   101,   134,    23,   101,   130,   118,    10,   139,
+     134,    99,   134,   127,    70,   131,    19,    10,    99,   116,
+     135,   118,   116,   134,   140,    71,   133,    99,   116
 };
 
 typedef enum {
@@ -1142,34 +1147,34 @@ static const toketypes yy_type_tab[] =
 {
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval,
   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
-  toketype_opval, toketype_pval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_pval,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_ival,
   toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
-  toketype_opval, toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
-  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
-  toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval,
-  toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval,
+  toketype_opval, toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval,
+  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
+  toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
   toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
-  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval,
+  toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
+  toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval,
   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
   toketype_opval, toketype_opval, toketype_opval, toketype_opval
 };
 
 /* Generated from:
- * 12bc2d35e1af6b72fc94eb1621fe7f5c3e605bbacc097f6fd0e4598864ad9939 perly.y
+ * e2ef3626c25dd92c66987e4c2f707e7f194c2bd5df74da27c51df206d9809412 perly.y
  * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl
  * ex: set ro: */
diff --git a/perly.y b/perly.y
index 8050360..4b73977 100644 (file)
--- a/perly.y
+++ b/perly.y
@@ -45,7 +45,7 @@
 
 %token <ival> GRAMPROG GRAMEXPR GRAMBLOCK GRAMBARESTMT GRAMFULLSTMT GRAMSTMTSEQ
 
-%token <ival> '{' '}' '[' ']' '-' '+' '$' '@' '%' '*' '&' ';' '=' '.'
+%token <ival> '{' '}' '[' ']' '-' '+' '@' '%' '&' '=' '.'
 
 %token <opval> WORD METHOD FUNCMETH THING PMFUNC PRIVATEREF QWLIST
 %token <opval> FUNC0OP FUNC0SUB UNIOPSUB LSTOPSUB
@@ -829,7 +829,7 @@ termunop : '-' term %prec UMINUS                       /* -$x */
        |       '!' term                               /* !$x */
                        { $$ = newUNOP(OP_NOT, 0, scalar($2)); }
        |       '~' term                               /* ~$x */
-                       { $$ = newUNOP(OP_COMPLEMENT, 0, scalar($2)); }
+                       { $$ = newUNOP($1, 0, scalar($2)); }
        |       term POSTINC                           /* $x++ */
                        { $$ = newUNOP(OP_POSTINC, 0,
                                        op_lvalue(scalar($1), OP_POSTINC)); }
index 4e4795d..d5851d5 100644 (file)
  *     This symbol contains the ~name expanded version of PRIVLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define PRIVLIB "/sys/lib/perl/5.21.8"         /**/
-#define PRIVLIB_EXP "/sys/lib/perl/5.21.8"             /**/
+#define PRIVLIB "/sys/lib/perl/5.21.9"         /**/
+#define PRIVLIB_EXP "/sys/lib/perl/5.21.9"             /**/
 
 /* PTRSIZE:
  *     This symbol contains the size of a pointer, so that the C preprocessor
  *     removed.  The elements in inc_version_list (inc_version_list.U) can
  *     be tacked onto this variable to generate a list of directories to search.
  */
-#define SITELIB "/sys/lib/perl/5.21.8/site_perl"               /**/
-#define SITELIB_EXP "/sys/lib/perl/5.21.8/site_perl"           /**/
-#define SITELIB_STEM "/sys/lib/perl/5.21.8/site_perl"          /**/
+#define SITELIB "/sys/lib/perl/5.21.9/site_perl"               /**/
+#define SITELIB_EXP "/sys/lib/perl/5.21.9/site_perl"           /**/
+#define SITELIB_STEM "/sys/lib/perl/5.21.9/site_perl"          /**/
 
 /* Size_t_size:
  *     This symbol holds the size of a Size_t in bytes.
index 1e8a206..7387c47 100644 (file)
@@ -32,12 +32,12 @@ alignbytes='4'
 ansi2knr=''
 aphostname='/bin/uname -n'
 api_revision='5'
-api_subversion='8'
+api_subversion='9'
 api_version='21'
-api_versionstring='5.21.8'
+api_versionstring='5.21.9'
 ar='ar'
-archlib='/sys/lib/perl5/5.21.8/386'
-archlibexp='/sys/lib/perl5/5.21.8/386'
+archlib='/sys/lib/perl5/5.21.9/386'
+archlibexp='/sys/lib/perl5/5.21.9/386'
 archname64=''
 archname='386'
 archobjs=''
@@ -332,7 +332,9 @@ d_lgamma_r='undef'
 d_libm_lib_version='0'
 d_link='define'
 d_llrint='undef'
+d_llrintl='undef'
 d_llround='undef'
+d_llroundl='undef'
 d_localtime64='undef'
 d_localtime_r='undef'
 d_localtime_r_needs_tzset='undef'
@@ -344,7 +346,9 @@ d_logb='undef'
 d_longdbl='define'
 d_longlong='define'
 d_lrint='undef'
+d_lrintl='undef'
 d_lround='undef'
+d_lroundl='undef'
 d_lseekproto='undef'
 d_lstat='define'
 d_madvise='undef'
@@ -783,17 +787,17 @@ inc_version_list=' '
 inc_version_list_init='0'
 incpath=''
 inews=''
-installarchlib='/sys/lib/perl/5.21.8/386'
+installarchlib='/sys/lib/perl/5.21.9/386'
 installbin='/usr/bin'
 installman1dir='/sys/man/1pub'
 installman3dir='/sys/man/2pub'
 installprefix='/usr'
 installprefixexp='/usr'
-installprivlib='/sys/lib/perl/5.21.8'
+installprivlib='/sys/lib/perl/5.21.9'
 installscript='/usr/bin'
-installsitearch='/sys/lib/perl/5.21.8/site_perl/386'
+installsitearch='/sys/lib/perl/5.21.9/site_perl/386'
 installsitebin='/usr/bin'
-installsitelib='/sys/lib/perl/5.21.8/site_perl'
+installsitelib='/sys/lib/perl/5.21.9/site_perl'
 installstyle='lib/perl5'
 installusrbinperl='undef'
 installvendorarch=''
@@ -914,8 +918,8 @@ pmake=''
 pr=''
 prefix='/usr'
 prefixexp='/usr'
-privlib='/sys/lib/perl/5.21.8'
-privlibexp='/sys/lib/perl/5.21.8'
+privlib='/sys/lib/perl/5.21.9'
+privlibexp='/sys/lib/perl/5.21.9'
 procselfexe=''
 prototype='define'
 ptrsize='4'
@@ -980,13 +984,13 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 0'
 sig_size='50'
 signal_t='void'
-sitearch='/sys/lib/perl/5.21.8/site_perl/386'
+sitearch='/sys/lib/perl/5.21.9/site_perl/386'
 sitearchexp='/sys/lib/perl/site_perl/386'
 sitebin='/usr/bin'
 sitebinexp='/usr/bin'
-sitelib='/sys/lib/perl/5.21.8/site_perl'
-sitelib_stem='/sys/lib/perl/5.21.8/site_perl'
-sitelibexp='/sys/lib/perl/5.21.8/site_perl'
+sitelib='/sys/lib/perl/5.21.9/site_perl'
+sitelib_stem='/sys/lib/perl/5.21.9/site_perl'
+sitelibexp='/sys/lib/perl/5.21.9/site_perl'
 siteprefix='/usr'
 siteprefixexp='/usr'
 sizesize='4'
@@ -1019,7 +1023,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/sys/include/ape/string.h'
 submit=''
-subversion='8'
+subversion='9'
 sysman='/sys/man/1pub'
 tail=''
 tar=''
@@ -1101,8 +1105,8 @@ vendorlib_stem=''
 vendorlibexp=''
 vendorprefix=''
 vendorprefixexp=''
-version='5.21.8'
-version_patchlevel_string='version 21 subversion 8'
+version='5.21.9'
+version_patchlevel_string='version 21 subversion 9'
 versiononly='undef'
 vi=''
 xlibpth=''
@@ -1116,9 +1120,9 @@ config_args=''
 config_argc=0
 PERL_REVISION=5
 PERL_VERSION=21
-PERL_SUBVERSION=8
+PERL_SUBVERSION=9
 PERL_API_REVISION=5
 PERL_API_VERSION=21
-PERL_API_SUBVERSION=8
+PERL_API_SUBVERSION=9
 PERL_PATCHLEVEL=
 PERL_CONFIG_SH=true
index 1cbdcc3..8747095 100644 (file)
@@ -53,7 +53,7 @@
 /roffitall
 
 # generated
-/perl5218delta.pod
+/perl5219delta.pod
 /perlapi.pod
 /perlintern.pod
 *.html
index 64a58d4..b6908d2 100644 (file)
@@ -44,7 +44,7 @@ path perlglossary            cpan/perlfaq/lib/
 path perlxs(?:tut|typemap)?  dist/ExtUtils-ParseXS/lib/
 path perldoc                 cpan/Pod-Perldoc/
 
-aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp
+aux c2ph h2ph h2xs perlbug pl2pm pod2html pod2man splain xsubpp
 
 =end buildtoc
 
@@ -180,6 +180,7 @@ aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp
 
     perlhist           Perl history records
     perldelta          Perl changes since previous version
+    perl5218delta      Perl changes in version 5.21.8
     perl5217delta      Perl changes in version 5.21.7
     perl5216delta      Perl changes in version 5.21.6
     perl5215delta      Perl changes in version 5.21.5
@@ -188,6 +189,7 @@ aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp
     perl5212delta      Perl changes in version 5.21.2
     perl5211delta      Perl changes in version 5.21.1
     perl5210delta      Perl changes in version 5.21.0
+    perl5202delta      Perl changes in version 5.20.2
     perl5201delta      Perl changes in version 5.20.1
     perl5200delta      Perl changes in version 5.20.0
     perl5184delta      Perl changes in version 5.18.4
diff --git a/pod/perl5202delta.pod b/pod/perl5202delta.pod
new file mode 100644 (file)
index 0000000..98707fd
--- /dev/null
@@ -0,0 +1,415 @@
+=encoding utf8
+
+=head1 NAME
+
+perl5202delta - what is new for perl v5.20.2
+
+=head1 DESCRIPTION
+
+This document describes differences between the 5.20.1 release and the 5.20.2
+release.
+
+If you are upgrading from an earlier release such as 5.20.0, first read
+L<perl5201delta>, which describes differences between 5.20.0 and 5.20.1.
+
+=head1 Incompatible Changes
+
+There are no changes intentionally incompatible with 5.20.1.  If any exist,
+they are bugs, and we request that you submit a report.  See L</Reporting Bugs>
+below.
+
+=head1 Modules and Pragmata
+
+=head2 Updated Modules and Pragmata
+
+=over 4
+
+=item *
+
+L<attributes> has been upgraded from version 0.22 to 0.23.
+
+The usage of C<memEQs> in the XS has been corrected.
+L<[perl #122701]|https://rt.perl.org/Ticket/Display.html?id=122701>
+
+=item *
+
+L<Data::Dumper> has been upgraded from version 2.151 to 2.151_01.
+
+Fixes CVE-2014-4330 by adding a configuration variable/option to limit
+recursion when dumping deep data structures.
+
+=item *
+
+L<Errno> has been upgraded from version 1.20_03 to 1.20_05.
+
+Warnings when building the XS on Windows with the Visual C++ compiler are now
+avoided.
+
+=item *
+
+L<feature> has been upgraded from version 1.36 to 1.36_01.
+
+The C<postderef> feature has now been documented.  This feature was actually
+added in Perl 5.20.0 but was accidentally omitted from the feature
+documentation until now.
+
+=item *
+
+L<IO::Socket> has been upgraded from version 1.37 to 1.38.
+
+Document the limitations of the connected() method.
+L<[perl #123096]|https://rt.perl.org/Ticket/Display.html?id=123096>
+
+=item *
+
+L<Module::CoreList> has been upgraded from version 5.020001 to 5.20150214.
+
+The list of Perl versions covered has been updated.
+
+=item *
+
+PathTools has been upgraded from version 3.48 to 3.48_01.
+
+A warning from the B<gcc> compiler is now avoided when building the XS.
+
+=item *
+
+L<PerlIO::scalar> has been upgraded from version 0.18 to 0.18_01.
+
+Reading from a position well past the end of the scalar now correctly returns
+end of file.
+L<[perl #123443]|https://rt.perl.org/Ticket/Display.html?id=123443>
+
+Seeking to a negative position still fails, but no longer leaves the file
+position set to a negation location.
+
+C<eof()> on a C<PerlIO::scalar> handle now properly returns true when the file
+position is past the 2GB mark on 32-bit systems.
+
+=item *
+
+L<Storable> has been upgraded from version 2.49 to 2.49_01.
+
+Minor grammatical change to the documentation only.
+
+=item *
+
+L<VMS::DCLsym> has been upgraded from version 1.05 to 1.05_01.
+
+Minor formatting change to the documentation only.
+
+=item *
+
+L<VMS::Stdio> has been upgraded from version 2.4 to 2.41.
+
+Minor formatting change to the documentation only.
+
+=back
+
+=head1 Documentation
+
+=head2 New Documentation
+
+=head3 L<perlunicook>
+
+This document, by Tom Christiansen, provides examples of handling Unicode in
+Perl.
+
+=head2 Changes to Existing Documentation
+
+=head3 L<perlexperiment>
+
+=over 4
+
+=item *
+
+Added reference to subroutine signatures.  This feature was actually added in
+Perl 5.20.0 but was accidentally omitted from the experimental feature
+documentation until now.
+
+=back
+
+=head3 L<perlpolicy>
+
+=over 4
+
+=item *
+
+The process whereby features may graduate from experimental status has now been
+formally documented.
+
+=back
+
+=head3 L<perlsyn>
+
+=over 4
+
+=item *
+
+An ambiguity in the documentation of the ellipsis statement has been corrected.
+L<[perl #122661]|https://rt.perl.org/Ticket/Display.html?id=122661>
+
+=back
+
+=head1 Diagnostics
+
+The following additions or changes have been made to diagnostic output,
+including warnings and fatal error messages.  For the complete list of
+diagnostic messages, see L<perldiag>.
+
+=head2 Changes to Existing Diagnostics
+
+=over 4
+
+=item *
+
+L<Bad symbol for scalar|perldiag/"Bad symbol for scalar"> is now documented.
+This error is not new, but was not previously documented here.
+
+=item *
+
+L<Missing right brace on \N{}|perldiag/"Missing right brace on \N{}"> is now
+documented.  This error is not new, but was not previously documented here.
+
+=back
+
+=head1 Testing
+
+=over 4
+
+=item *
+
+The test script F<re/rt122747.t> has been added to verify that
+L<perl #122747|https://rt.perl.org/Ticket/Display.html?id=122747> remains
+fixed.
+
+=back
+
+=head1 Platform Support
+
+=head2 Regained Platforms
+
+IRIX and Tru64 platforms are working again.  (Some C<make test> failures
+remain.)
+
+=head1 Selected Bug Fixes
+
+=over 4
+
+=item *
+
+AIX now sets the length in C<< getsockopt >> correctly.
+L<[perl #120835]|https://rt.perl.org/Ticket/Display.html?id=120835>,
+L<[cpan #91183]|https://rt.cpan.org/Ticket/Display.html?id=91183>,
+L<[cpan #85570]|https://rt.cpan.org/Ticket/Display.html?id=85570>
+
+=item *
+
+In Perl 5.20.0, C<$^N> accidentally had the internal UTF8 flag turned off if
+accessed from a code block within a regular expression, effectively
+UTF8-encoding the value.  This has been fixed.
+L<[perl #123135]|https://rt.perl.org/Ticket/Display.html?id=123135>
+
+=item *
+
+Various cases where the name of a sub is used (autoload, overloading, error
+messages) used to crash for lexical subs, but have been fixed.
+
+=item *
+
+An assertion failure when parsing C<sort> with debugging enabled has been
+fixed.
+L<[perl #122771]|https://rt.perl.org/Ticket/Display.html?id=122771>
+
+=item *
+
+Loading UTF8 tables during a regular expression match could cause assertion
+failures under debugging builds if the previous match used the very same
+regular expression.
+L<[perl #122747]|https://rt.perl.org/Ticket/Display.html?id=122747>
+
+=item *
+
+Due to a mistake in the string-copying logic, copying the value of a state
+variable could instead steal the value and undefine the variable.  This bug,
+introduced in Perl 5.20, would happen mostly for long strings (1250 chars or
+more), but could happen for any strings under builds with copy-on-write
+disabled.
+L<[perl #123029]|https://rt.perl.org/Ticket/Display.html?id=123029>
+
+=item *
+
+Fixed a bug that could cause perl to execute an infinite loop during
+compilation.
+L<[perl #122995]|https://rt.perl.org/Ticket/Display.html?id=122995>
+
+=item *
+
+On Win32, restoring in a child pseudo-process a variable that was C<local()>ed
+in a parent pseudo-process before the C<fork> happened caused memory corruption
+and a crash in the child pseudo-process (and therefore OS process).
+L<[perl #40565]|https://rt.perl.org/Ticket/Display.html?id=40565>
+
+=item *
+
+Tainted constants evaluated at compile time no longer cause unrelated
+statements to become tainted.
+L<[perl #122669]|https://rt.perl.org/Ticket/Display.html?id=122669>
+
+=item *
+
+Calling C<write> on a format with a C<^**> field could produce a panic in
+sv_chop() if there were insufficient arguments or if the variable used to fill
+the field was empty.
+L<[perl #123245]|https://rt.perl.org/Ticket/Display.html?id=123245>
+
+=item *
+
+In Perl 5.20.0, C<sort CORE::fake> where 'fake' is anything other than a
+keyword started chopping of the last 6 characters and treating the result as a
+sort sub name.  The previous behaviour of treating "CORE::fake" as a sort sub
+name has been restored.
+L<[perl #123410]|https://rt.perl.org/Ticket/Display.html?id=123410>
+
+=item *
+
+A bug in regular expression patterns that could lead to segfaults and other
+crashes has been fixed.  This occurred only in patterns compiled with C<"/i">,
+while taking into account the current POSIX locale (this usually means they
+have to be compiled within the scope of C<S<"use locale">>), and there must be
+a string of at least 128 consecutive bytes to match.
+L<[perl #123539]|https://rt.perl.org/Ticket/Display.html?id=123539>
+
+=item *
+
+C<qr/@array(?{block})/> no longer dies with "Bizarre copy of ARRAY".
+L<[perl #123344]|https://rt.perl.org/Ticket/Display.html?id=123344>
+
+=item *
+
+C<gmtime> no longer crashes with not-a-number values.
+L<[perl #123495]|https://rt.perl.org/Ticket/Display.html?id=123495>
+
+=item *
+
+Certain syntax errors in substitutions, such as C<< s/${<>{})// >>, would
+crash, and had done so since Perl 5.10.  (In some cases the crash did not start
+happening until Perl 5.16.)  The crash has, of course, been fixed.
+L<[perl #123542]|https://rt.perl.org/Ticket/Display.html?id=123542>
+
+=item *
+
+A memory leak in some regular expressions, introduced in Perl 5.20.1, has been
+fixed.
+L<[perl #123198]|https://rt.perl.org/Ticket/Display.html?id=123198>
+
+=item *
+
+C<< formline("@...", "a"); >> would crash.  The C<FF_CHECKNL> case in
+pp_formline() didn't set the pointer used to mark the chop position, which led
+to the C<FF_MORE> case crashing with a segmentation fault.  This has been
+fixed.
+L<[perl #123538]|https://rt.perl.org/Ticket/Display.html?id=123538>
+L<[perl #123622]|https://rt.perl.org/Ticket/Display.html?id=123622>
+
+=item *
+
+A possible buffer overrun and crash when parsing a literal pattern during
+regular expression compilation has been fixed.
+L<[perl #123604]|https://rt.perl.org/Ticket/Display.html?id=123604>
+
+=back
+
+=head1 Known Problems
+
+=over 4
+
+=item *
+
+It is a known bug that lexical subroutines cannot be used as the C<SUBNAME>
+argument to C<sort>.  This will be fixed in a future version of Perl.
+
+=back
+
+=head1 Errata From Previous Releases
+
+=over 4
+
+=item *
+
+A regression has been fixed that was introduced in Perl 5.20.0 (fixed in Perl
+5.20.1 as well as here) in which a UTF-8 encoded regular expression pattern
+that contains a single ASCII lowercase letter does not match its uppercase
+counterpart.
+L<[perl #122655]|https://rt.perl.org/Ticket/Display.html?id=122655>
+
+=back
+
+=head1 Acknowledgements
+
+Perl 5.20.2 represents approximately 5 months of development since Perl 5.20.1
+and contains approximately 6,300 lines of changes across 170 files from 34
+authors.
+
+Excluding auto-generated files, documentation and release tools, there were
+approximately 1,900 lines of changes to 80 .pm, .t, .c and .h files.
+
+Perl continues to flourish into its third decade thanks to a vibrant community
+of users and developers.  The following people are known to have contributed
+the improvements that became Perl 5.20.2:
+
+Aaron Crane, Abigail, Andreas Voegele, Andy Dougherty, Anthony Heading,
+Aristotle Pagaltzis, Chris 'BinGOs' Williams, Craig A. Berry, Daniel Dragan,
+Doug Bell, Ed J, Father Chrysostomos, Glenn D. Golden, H.Merijn Brand, Hugo van
+der Sanden, James E Keenan, Jarkko Hietaniemi, Jim Cromie, Karen Etheridge,
+Karl Williamson, kmx, Matthew Horsfall, Max Maischein, Peter Martini, Rafael
+Garcia-Suarez, Ricardo Signes, Shlomi Fish, Slaven Rezic, Steffen Müller,
+Steve Hay, Tadeusz Sośnierz, Tony Cook, Yves Orton, Ævar Arnfjörð
+Bjarmason.
+
+The list above is almost certainly incomplete as it is automatically generated
+from version control history.  In particular, it does not include the names of
+the (very much appreciated) contributors who reported issues to the Perl bug
+tracker.
+
+Many of the changes included in this version originated in the CPAN modules
+included in Perl's core.  We're grateful to the entire CPAN community for
+helping Perl to flourish.
+
+For a more complete list of all of Perl's historical contributors, please see
+the F<AUTHORS> file in the Perl source distribution.
+
+=head1 Reporting Bugs
+
+If you find what you think is a bug, you might check the articles recently
+posted to the comp.lang.perl.misc newsgroup and the perl bug database at
+https://rt.perl.org/ .  There may also be information at http://www.perl.org/ ,
+the Perl Home Page.
+
+If you believe you have an unreported bug, please run the L<perlbug> program
+included with your release.  Be sure to trim your bug down to a tiny but
+sufficient test case.  Your bug report, along with the output of C<perl -V>,
+will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
+
+If the bug you are reporting has security implications, which make it
+inappropriate to send to a publicly archived mailing list, then please send it
+to perl5-security-report@perl.org.  This points to a closed subscription
+unarchived mailing list, which includes all the core committers, who will be
+able to help assess the impact of issues, figure out a resolution, and help
+co-ordinate the release of patches to mitigate or fix the problem across all
+platforms on which Perl is supported.  Please only use this address for
+security issues in the Perl core, not for modules independently distributed on
+CPAN.
+
+=head1 SEE ALSO
+
+The F<Changes> file for an explanation of how to view exhaustive details on
+what changed.
+
+The F<INSTALL> file for how to build Perl.
+
+The F<README> file for general stuff.
+
+The F<Artistic> and F<Copying> files for copyright information.
+
+=cut
diff --git a/pod/perl5218delta.pod b/pod/perl5218delta.pod
new file mode 100644 (file)
index 0000000..5715a83
--- /dev/null
@@ -0,0 +1,676 @@
+=encoding utf8
+
+=head1 NAME
+
+perl5218delta - what is new for perl v5.21.8
+
+=head1 DESCRIPTION
+
+This document describes differences between the 5.21.7 release and the 5.21.8
+release.
+
+If you are upgrading from an earlier release such as 5.21.6, first read
+L<perl5217delta>, which describes differences between 5.21.6 and 5.21.7.
+
+=head1 Notice
+
+With this release we are now in the contentious changes portion of the code
+freeze as we prepare for the next stable release of Perl 5.
+
+=head1 Core Enhancements
+
+=head2 The warnings pragma now supports warnings outside of "all"
+
+Ever since perl v5.6.0 we've had no way of adding new warnings without
+retroactively adding them to all existing programs that used C<-w>,
+C<-W> or C<use warnings>.
+
+This caused us to not add new useful warnings out of fear that they
+might unduly burden users who just wanted to upgrade perl and didn't
+want to deal with a bunch of warnings from their existing code.
+
+We now support a way to have our cake and eat it too, and can add new
+warnings to the core going forward through other top-level warning
+categories. See L<the warnings documentation|warnings/Top-level
+warning categories & associated confusion> for details.
+
+=head2 Non-Capturing Regular Expression Flag
+
+Regular expressions now support a C</n> flag that disables capturing
+and filling in C<$1>, C<$2>, etc... inside of groups:
+
+  "hello" =~ /(hi|hello)/n; # $1 is not set
+
+This is equivalent to putting C<?:> at the beginning of every capturing group.
+
+See L<perlre/"n"> for more information.
+
+=head2 C<prototype> with no arguments
+
+C<prototype()> with no arguments now infers C<$_>.  [perl #123514]
+
+=head2 C<use re 'strict'>
+
+This applies stricter syntax rules to regular expression patterns
+compiled within its scope, which hopefully will alert you to typos and
+other unintentional behavior that backwards-compatibility issues prevent
+us from doing in normal regular expression compilations.  Because the
+behavior of this is subject to change in future Perl releases as we gain
+experience, using this pragma will raise a category
+C<experimental:re_strict> warning.
+See L<'strict' in re|re/'strict' mode>.
+
+=head2 New "const" subroutine attribute
+
+The "const" attribute can be applied to an anonymous subroutine.  It causes
+it to be executed immediately when it is cloned.  Its value is captured and
+used to create a new constant subroutine that is returned.  This feature is
+experimental.  See L<perlsub/Constant Functions>.
+
+=head1 Incompatible Changes
+
+=head2 sub signatures moved before attributes
+
+The experimental sub signatures feature, as introduced in 5.20, parsed
+signatures after attributes.  In this release, the positioning has been
+moved such that signatures occur in exactly the same positioning a
+prototype would be found.
+
+=head1 Modules and Pragmata
+
+=head2 Updated Modules and Pragmata
+
+=over 4
+
+=item *
+
+L<arybase> has been upgraded from version 0.09 to 0.10.
+
+=item *
+
+L<attributes> has been upgraded from version 0.24 to 0.25.
+
+Minor internal change only.
+
+=item *
+
+L<autodie> has been upgraded from version 2.25 to 2.26.
+
+=item *
+
+L<B> has been upgraded from version 1.54 to 1.55.
+
+A bug where, after an ithread creation or psuedofork, special/immortal SVs in
+the child ithread/psuedoprocess did not have the correct class of
+C<B::SPECIAL>, has been fixed.
+
+The C<id> and C<outid> PADLIST methods have been added.
+
+=item *
+
+L<B::Deparse> has been upgraded from version 1.31 to 1.32.
+
+Deparsing C<BEGIN { undef &foo }> with the B<-w> switch enabled started to
+emit 'uninitialized' warnings in Perl 5.14.  This has been fixed.
+
+Deparsing calls to subs with a C<(;+)> prototype resulted in an infinite
+loop.  The C<(;$>) C<(_)> and C<(;_)> prototypes were given the wrong
+precedence, causing C<foo($aE<lt>$b)> to be deparsed without the parentheses.
+
+=item *
+
+L<Compress::Raw::Bzip2> has been upgraded from version 2.067 to 2.068.
+
+=item *
+
+L<Compress::Raw::Zlib> has been upgraded from version 2.067 to 2.068.
+
+=item *
+
+L<CPAN::Meta::Requirements> has been upgraded from version 2.130 to 2.131.
+
+=item *
+
+L<Data::Dumper> has been upgraded from version 2.155 to 2.156.
+
+=item *
+
+L<DB_File> has been upgraded from version 1.834 to 1.835.
+
+=item *
+
+L<Devel::Peek> has been upgraded from version 1.20 to 1.21.
+
+=item *
+
+L<Devel::PPPort> has been upgraded from version 3.25 to 3.28.
+
+=item *
+
+L<Digest::MD5> has been upgraded from version 2.53 to 2.54.
+
+=item *
+
+L<Digest::SHA> has been upgraded from version 5.93 to 5.95.
+
+=item *
+
+L<DynaLoader> has been upgraded from version 1.29 to 1.30.
+
+=item *
+
+L<ExtUtils::Command> has been upgraded from version 1.18 to 1.20.
+
+=item *
+
+L<ExtUtils::Manifest> has been upgraded from version 1.69 to 1.70.
+
+=item *
+
+L<File::Glob> has been upgraded from version 1.23 to 1.24.
+
+Avoid SvIV() expanding to call get_sv() three times in a few
+places. [perl #123606]
+
+=item *
+
+L<Filter::Util::Call> has been upgraded from version 1.51 to 1.54.
+
+=item *
+
+L<Getopt::Long> has been upgraded from version 2.42 to 2.43.
+
+=item *
+
+L<IO::Compress::Base> has been upgraded from version 2.067 to 2.068.
+
+=item *
+
+L<IO::Socket::IP> has been upgraded from version 0.34 to 0.36.
+
+=item *
+
+L<MIME::Base64> has been upgraded from version 3.14 to 3.15.
+
+=item *
+
+L<Module::CoreList> has been upgraded from version 5.20141220 to 5.20150120.
+
+=item *
+
+L<Module::Load::Conditional> has been upgraded from version 0.62 to 0.64.
+
+=item *
+
+L<Module::Metadata> has been upgraded from version 1.000024 to 1.000026.
+
+=item *
+
+L<Opcode> has been upgraded from version 1.30 to 1.31.
+
+=item *
+
+L<PerlIO::encoding> has been upgraded from version 0.20 to 0.21.
+
+=item *
+
+L<Pod::Simple> has been upgraded from version 3.28 to 3.29.
+
+=item *
+
+L<POSIX> has been upgraded from version 1.48 to 1.49.
+
+=item *
+
+L<re> has been upgraded from version 0.28 to 0.30.
+
+=item *
+
+L<Safe> has been upgraded from version 2.38 to 2.39.
+
+C<reval> was not propagating void context properly.
+
+=item *
+
+L<SDBM_File> has been upgraded from version 1.12 to 1.13.
+
+Simplified the build process.  [perl #123413]
+
+=item *
+
+L<Test::Harness> has been upgraded from version 3.34 to 3.35.
+
+=item *
+
+L<Test::Simple> has been upgraded from version 1.301001_090 to 1.301001_097.
+
+=item *
+
+L<Unicode::Collate> has been upgraded from version 1.09 to 1.10.
+
+=item *
+
+L<VMS::DCLsym> has been upgraded from version 1.05 to 1.06.
+
+=item *
+
+L<warnings> has been upgraded from version 1.29 to 1.30.
+
+=back
+
+=head1 Documentation
+
+=head2 New Documentation
+
+=head3 L<perlunicook>
+
+This document, by Tom Christiansen, provides examples of handling Unicode in 
+Perl.
+
+=head1 Diagnostics
+
+The following additions or changes have been made to diagnostic output,
+including warnings and fatal error messages.  For the complete list of
+diagnostic messages, see L<perldiag>.
+
+=head2 New Diagnostics
+
+=head3 New Errors
+
+=over 4
+
+=item *
+
+L<Bad symbol for scalar|perldiag/"Bad symbol for scalar">
+
+(P) An internal request asked to add a scalar entry to something that
+wasn't a symbol table entry.
+
+=item *
+
+L<:const is not permitted on named subroutines|perldiag/":const is not permitted on named subroutines">
+
+(F) The "const" attribute causes an anonymous subroutine to be run and
+its value captured at the time that it is cloned.  Names subroutines are
+not cloned like this, so the attribute does not make sense on them.
+
+=back
+
+=head3 New Warnings
+
+=over 4
+
+=item *
+
+L<:const is experimental|perldiag/":const is experimental">
+
+(S experimental::const_attr) The "const" attribute is experimental.
+If you want to use the feature, disable the warning with C<no warnings
+'experimental::const_attr'>, but know that in doing so you are taking
+the risk that your code may break in a future Perl version.
+
+=item *
+
+L<Non-finite repeat count does nothing|perldiag/"Non-finite repeat count does nothing">
+
+(W numeric) You tried to execute the
+L<C<x>|perlop/Multiplicative Operators> repetition operator C<Inf> (or
+C<-Inf>) or C<NaN> times, which doesn't make sense.
+
+=item *
+
+L<Useless use of attribute "const"|perldiag/Useless use of attribute "const">
+
+(W misc) The "const" attribute has no effect except
+on anonymous closure prototypes.  You applied it to
+a subroutine via L<attributes.pm|attributes>.  This is only useful
+inside an attribute handler for an anonymous subroutine.
+
+=item *
+
+L<Unusual use of %s in void context|perldiag/"Unusual use of %s in void context">
+
+(W void_unusual) Similar to the "Useless use of %s in void context"
+warning, but only turned on by the top-level "pedantic" warning
+category, used for e.g. C<grep> in void context, which may indicate a
+bug, but could also just be someone using C<grep> for its side-effects
+as a loop.
+
+Enabled as part of "extra" warnings, not in the "all" category. See
+L<warnings> for details
+
+=item *
+
+L<E<quot>use re 'strict'E<quot> is experimental|perldiag/"use re 'strict'" is experimental>
+
+(S experimental::re_strict) The things that are different when a regular
+expression pattern is compiled under C<'strict'> are subject to change
+in future Perl releases in incompatible ways.  This means that a pattern
+that compiles today may not in a future Perl release.  This warning is
+to alert you to that risk.
+
+L<Wide character (U+%X) in %s|perldiag/"Wide character (U+%X) in %s">
+
+(W locale) While in a single-byte locale (I<i.e.>, a non-UTF-8
+one), a multi-byte character was encountered.   Perl considers this
+character to be the specified Unicode code point.  Combining non-UTF8
+locales and Unicode is dangerous.  Almost certainly some characters
+will have two different representations.  For example, in the ISO 8859-7
+(Greek) locale, the code point 0xC3 represents a Capital Gamma.  But so
+also does 0x393.  This will make string comparisons unreliable.
+
+You likely need to figure out how this multi-byte character got mixed up
+with your single-byte locale (or perhaps you thought you had a UTF-8
+locale, but Perl disagrees).
+
+=item *
+
+L<Both or neither range ends should be Unicode in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>|perldiag/"Both or neither range ends should be Unicode in regex; marked by <-- HERE in m/%s/">
+
+(W regexp) (only under C<S<use re 'strict'>> or within C<(?[...])>)
+
+In a bracketed character class in a regular expression pattern, you
+had a range which has exactly one end of it specified using C<\N{}>, and
+the other end is specified using a non-portable mechanism.  Perl treats
+the range as a Unicode range, that is, all the characters in it are
+considered to be the Unicode characters, and which may be different code
+points on some platforms Perl runs on.  For example, C<[\N{U+06}-\x08]>
+is treated as if you had instead said C<[\N{U+06}-\N{U+08}]>, that is it
+matches the characters whose code points in Unicode are 6, 7, and 8.
+But that C<\x08> might indicate that you meant something different, so
+the warning gets raised.
+
+=item *
+
+L<Ranges of ASCII printables should be some subset of "0-9", "A-Z", or "a-z" in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>|perldiag/"Ranges of ASCII printables should be some subset of "0-9", "A-Z", or "a-z" in regex; marked by <-- HERE in mE<sol>%sE<sol>">
+
+(W regexp) (only under C<S<use re 'strict'>> or within C<(?[...])>)
+
+Stricter rules help to find typos and other errors.  Perhaps you didn't
+even intend a range here, if the C<"-"> was meant to be some other
+character, or should have been escaped (like C<"\-">).  If you did
+intend a range, the one that was used is not portable between ASCII and
+EBCDIC platforms, and doesn't have an obvious meaning to a casual
+reader.
+
+ [3-7]    # OK; Obvious and portable
+ [d-g]    # OK; Obvious and portable
+ [A-Y]    # OK; Obvious and portable
+ [A-z]    # WRONG; Not portable; not clear what is meant
+ [a-Z]    # WRONG; Not portable; not clear what is meant
+ [%-.]    # WRONG; Not portable; not clear what is meant
+ [\x41-Z] # WRONG; Not portable; not obvious to non-geek
+
+(You can force portability by specifying a Unicode range, which means that
+the endpoints are specified by
+L<C<\N{...}>|perlrecharclass/Character Ranges>, but the meaning may
+still not be obvious.)
+The stricter rules require that ranges that start or stop with an ASCII
+character that is not a control have all their endpoints be the literal
+character, and not some escape sequence (like C<"\x41">), and the ranges
+must be all digits, or all uppercase letters, or all lowercase letters.
+
+=item *
+
+L<Ranges of digits should be from the same group in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>|perldiag/"Ranges of digits should be from the same group in regex; marked by <-- HERE in m/%s/">
+
+(W regexp) (only under C<S<use re 'strict'>> or within C<(?[...])>)
+
+Stricter rules help to find typos and other errors.  You included a
+range, and at least one of the end points is a decimal digit.  Under the
+stricter rules, when this happens, both end points should be digits in
+the same group of 10 consecutive digits.
+
+=item *
+
+L<"%s" is more clearly written simply as "%s" in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>|perldiag/"%s" is more clearly written simply as "%s" in regex; marked by <-- HERE in mE<sol>%sE<sol>>
+
+(W regexp) (only under C<S<use re 'strict'>> or within C<(?[...])>)
+
+You specified a character that has the given plainer way of writing it,
+and which is also portable to platforms running with different character
+sets.
+
+=back
+
+=head2 Changes to Existing Diagnostics
+
+=over 4
+
+=item *
+
+The message
+L<Locale '%s' may not work well.%s|perldiag/"Locale '%s' may not work well.%s">
+is no longer raised unless the problemtatic locale is actually used in
+the Perl program.  Previously it was raised if it merely was the
+underlying locale.  All Perl programs have an underlying locale at all
+times, but something like a C<S<use locale>> is needed for that locale
+to actually have some effect.  This message will not be raised when
+the underlying locale is hidden.
+
+=back
+
+=head1 Configuration and Compilation
+
+=over 4
+
+=item *
+
+pthreads and lcl will be linked by default if present. This allows XS modules 
+that require threading to work on non-threaded perls. Note that you must still 
+pass C<-Dusethreads> if you want a threaded perl.
+
+=back
+
+=head1 Testing
+
+=over 4
+
+=item *
+
+A new test script, F<bigmem/subst.t>, has been added to test memory usage of
+subst on very large strings.
+
+=item *
+
+A new test script, F<op/anonconst.t>, has been added to test experimental
+:const subroutines.
+
+=item *
+
+A new test script, F<re/reg_nocapture.t>, has been added to test the new
+C</n> regexp flag.
+
+=back
+
+=head1 Platform Support
+
+=head2 Platform-Specific Notes
+
+=over 4
+
+=item Win32
+
+=over 4
+
+=item *
+
+Previously, on Visual C++ for Win64 built Perls only, when compiling every Perl
+XS module (including CPAN ones) and Perl aware .c file with a 64 bit Visual C++,
+would unconditionally have around a dozen warnings from hv_func.h.  These
+warnings have been silenced.  GCC all bitness and Visual C++ for Win32 were
+not affected.
+
+=item *
+
+Support for building without PerlIO has been removed from the Windows
+makefiles.  Non-PerlIO builds were all but deprecated in Perl 5.18.0 and are
+already not supported by F<Configure> on POSIX systems.
+
+=item *
+
+Between 2 and 6 ms and 7 I/O calls have been saved per attempt to open a perl
+module for each path in C<@INC>.
+
+=back
+
+=back
+
+=head1 Internal Changes
+
+=over 4
+
+=item *
+
+Added Perl_sv_get_backrefs() to determine if an SV is a weak-referent.
+
+Function either returns an SV * of type AV, which contains the set of
+weakreferences which reference the passed in SV, or a simple RV * which
+is the only weakref to this item.
+
+=back
+
+=head1 Selected Bug Fixes
+
+=over 4
+
+=item *
+
+A bug in regular expression patterns that could lead to segfaults and
+other crashes has been fixed.  This occurred only in patterns compiled
+with C<"/i">, while taking into account the current POSIX locale (this usually
+means they have to be compiled within the scope of C<S<"use locale">>),
+and there must be a string of at least 128 consecutive bytes to match.
+[perl #123539]
+
+=item *
+
+C<s///> now works on very long strings instead of dying with 'Substitution
+loop'.  [perl #103260] [perl #123071]
+
+=item *
+
+C<gmtime> no longer crashes with not-a-number values.  [perl #123495]
+
+=item *
+
+C<\()> (reference to an empty list) and C<y///> with lexical $_ in scope
+could do a bad write past the end of the stack.  They have been fixed
+to extend the stack first.
+
+=item *
+
+C<prototype()> with no arguments used to read the previous item on the
+stack, so C<print "foo", prototype()> would print foo's prototype.  It has
+been fixed to infer $_ instead.  [perl #123514]
+
+=item *
+
+Some cases of lexical state subs inside predeclared subs could crash but no
+longer do.
+
+=item *
+
+Some cases of nested lexical state subs inside anonymous subs could cause
+'Bizarre copy' errors or possibly even crash.
+
+=item *
+
+When trying to emit warnings, perl's default debugger (F<perl5db.pl>) was
+sometimes giving 'Undefined subroutine &DB::db_warn called' instead.  This
+bug, which started to occur in Perl 5.18, has been fixed.  [perl #123553]
+
+=item *
+
+Certain syntax errors in substitutions, such as C<< s/${E<lt>E<gt>{})// >>, would
+crash, and had done so since Perl 5.10.  (In some cases the crash did not
+start happening till 5.16.)  The crash has, of course, been fixed.
+[perl #123542]
+
+=item *
+
+A repeat expression like C<33 x ~3> could cause a large buffer
+overflow since the new output buffer size was not correctly handled by
+SvGROW().  An expression like this now properly produces a memory wrap
+panic.  [perl 123554]
+
+=item *
+
+C<< formline("@...", "a"); >> would crash.  The C<FF_CHECKNL> case in
+pp_formline() didn't set the pointer used to mark the chop position,
+which led to the C<FF_MORE> case crashing with a segmentation fault.
+This has been fixed.  [perl #123538]
+
+=item *
+
+A possible buffer overrun and crash when parsing a literal pattern during
+regular expression compilation has been fixed.  [perl #123604]
+
+=back
+
+=head1 Acknowledgements
+
+Perl 5.21.8 represents approximately 4 weeks of development since Perl 5.21.7
+and contains approximately 26,000 lines of changes across 750 files from 27
+authors.
+
+Excluding auto-generated files, documentation and release tools, there were
+approximately 13,000 lines of changes to 410 .pm, .t, .c and .h files.
+
+Perl continues to flourish into its third decade thanks to a vibrant community
+of users and developers. The following people are known to have contributed the
+improvements that became Perl 5.21.8:
+
+Aaron Crane, Andreas Voegele, Chad Granum, Chris 'BinGOs' Williams, Craig A.
+Berry, Daniel Dragan, David Mitchell, E. Choroba, Ed J, Father Chrysostomos,
+H.Merijn Brand, Hugo van der Sanden, James E Keenan, Jarkko Hietaniemi, Karen
+Etheridge, Karl Williamson, Matthew Horsfall, Max Maischein, Peter Martini,
+Rafael Garcia-Suarez, Ricardo Signes, Rostislav Skudnov, Slaven Rezic, Steve
+Hay, Tony Cook, Yves Orton, Ævar Arnfjörð Bjarmason.
+
+The list above is almost certainly incomplete as it is automatically generated
+from version control history. In particular, it does not include the names of
+the (very much appreciated) contributors who reported issues to the Perl bug
+tracker.
+
+Many of the changes included in this version originated in the CPAN modules
+included in Perl's core. We're grateful to the entire CPAN community for
+helping Perl to flourish.
+
+For a more complete list of all of Perl's historical contributors, please see
+the F<AUTHORS> file in the Perl source distribution.
+
+=head1 Reporting Bugs
+
+If you find what you think is a bug, you might check the articles recently
+posted to the comp.lang.perl.misc newsgroup and the perl bug database at
+https://rt.perl.org/ .  There may also be information at
+http://www.perl.org/ , the Perl Home Page.
+
+If you believe you have an unreported bug, please run the L<perlbug> program
+included with your release.  Be sure to trim your bug down to a tiny but
+sufficient test case.  Your bug report, along with the output of C<perl -V>,
+will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
+
+If the bug you are reporting has security implications, which make it
+inappropriate to send to a publicly archived mailing list, then please send it
+to perl5-security-report@perl.org.  This points to a closed subscription
+unarchived mailing list, which includes all the core committers, who will be
+able to help assess the impact of issues, figure out a resolution, and help
+co-ordinate the release of patches to mitigate or fix the problem across all
+platforms on which Perl is supported.  Please only use this address for
+security issues in the Perl core, not for modules independently distributed on
+CPAN.
+
+=head1 SEE ALSO
+
+The F<Changes> file for an explanation of how to view exhaustive details on
+what changed.
+
+The F<INSTALL> file for how to build Perl.
+
+The F<README> file for general stuff.
+
+The F<Artistic> and F<Copying> files for copyright information.
+
+=cut
index f288692..6e4e919 100644 (file)
@@ -46,7 +46,7 @@ already be overwhelming.
   , =>            /a ASCII    /aa safe  {3,7}  repeat in range
   list ops        /l locale   /d  dual  |      alternation
   not             /u Unicode            []     character class
-  and             /e evaluate /ee rpts  \b     word boundary
+  and             /e evaluate /ee rpts  \b     boundary
   or xor          /g global             \z     string end
                   /o compile pat once   ()     capture
   DEBUG                                 (?:p)  no capture
index 03dce25..c5fb455 100644 (file)
@@ -230,7 +230,7 @@ everywhere by now.
  system(s)                   Don't. Look at pp_system or use my_popen.
 
  getenv(s)                   PerlEnv_getenv(s)
- setenv(s, val)              my_putenv(s, val)
+ setenv(s, val)              my_setenv(s, val)
 
 =head2 Miscellaneous functions
 
index 57fa1f4..591e69b 100644 (file)
@@ -573,19 +573,23 @@ will be lost.
 
  # Word Boundary Opcodes:
  BOUND           no         Match "" at any word boundary using native
-                            charset rules for non-utf8
- BOUNDL          no         Match "" at any locale word boundary
- BOUNDU          no         Match "" at any word boundary using Unicode
-                            rules
- BOUNDA          no         Match "" at any word boundary using ASCII
-                            rules
+                            charset rules for non-utf8, otherwise
+                            Unicode rules
+ BOUNDL          no         Match "" at any boundary of a given type
+                            using locale rules
+ BOUNDU          no         Match "" at any boundary of a given type
+                            using Unicode rules
+ BOUNDA          no         Match "" at any boundary of a given type
+                            using ASCII rules
  NBOUND          no         Match "" at any word non-boundary using
-                            native charset rules for non-utf8
- NBOUNDL         no         Match "" at any locale word non-boundary
- NBOUNDU         no         Match "" at any word non-boundary using
+                            native charset rules for non-utf8, otherwise
                             Unicode rules
- NBOUNDA         no         Match "" at any word non-boundary using
-                            ASCII rules
+ NBOUNDL         no         Match "" at any boundary of a given type
+                            using locale rules
+ NBOUNDU         no         Match "" at any boundary of a given type
+                            using using Unicode rules
+ NBOUNDA         no         Match "" at any boundary of a given type
+                            using using ASCII rules
 
  # [Special] alternatives:
  REG_ANY         no         Match any one character (except newline).
index 5b4313e..3d8c330 100644 (file)
 
 =head1 NAME
 
-perldelta - what is new for perl v5.21.8
+perldelta - what is new for perl v5.21.9
 
 =head1 DESCRIPTION
 
-This document describes differences between the 5.21.7 release and the 5.21.8
+This document describes differences between the 5.21.8 release and the 5.21.9
 release.
 
-If you are upgrading from an earlier release such as 5.21.6, first read
-L<perl5217delta>, which describes differences between 5.21.6 and 5.21.7.
+If you are upgrading from an earlier release such as 5.21.7, first read
+L<perl5218delta>, which describes differences between 5.21.7 and 5.21.8.
 
 =head1 Notice
 
-With this release we are now in the contentious changes portion of the code
+With this release we are now in the user-visible changes portion of the code
 freeze as we prepare for the next stable release of Perl 5.
 
 =head1 Core Enhancements
 
-=head2 The warnings pragma now supports warnings outside of "all"
+=head2 qr/\b{gcb}/ is now handled in regular expressions
 
-Ever since perl v5.6.0 we've had no way of adding new warnings without
-retroactively adding them to all existing programs that used C<-w>,
-C<-W> or C<use warnings>.
+C<gcb> stands for Grapheme Cluster Boundary.  It is a Unicode property
+that finds the boundary between sequences of characters that look like a
+single character to a native speaker of a language.  Perl has long had
+the ability to deal with these through the C<\X> regular escape
+sequence.  Now, there is an alternative way of handling these.  See
+L<perlrebackslash/\b{}, \b, \B{}, \B> for details.
 
-This caused us to not add new useful warnings out of fear that they
-might unduly burden users who just wanted to upgrade perl and didn't
-want to deal with a bunch of warnings from their existing code.
+=head2 qr/\b{wb}/ is now handled in regular expressions
 
-We now support a way to have our cake and eat it too, and can add new
-warnings to the core going forward through other top-level warning
-categories. See L<the warnings documentation|warnings/Top-level
-warning categories & associated confusion> for details.
+C<wb> stands for Word Boundary.  It is a Unicode property
+that finds the boundary between words.  This is similar to the plain
+C<\b> (without braces) but is more suitable for natural language
+processing.  It knows, for example that apostrophes can occur in the
+middle of words.  See L<perlrebackslash/\b{}, \b, \B{}, \B> for details.
 
-=head2 Non-Capturing Regular Expression Flag
+=head2 qr/\b{sb}/ is now handled in regular expressions
 
-Regular expressions now support a C</n> flag that disables capturing
-and filling in C<$1>, C<$2>, etc... inside of groups:
+C<sb> stands for Sentence Boundary.  It is a Unicode property
+to aid in parsing natural language sentences.
+See L<perlrebackslash/\b{}, \b, \B{}, \B> for details.
 
-  "hello" =~ /(hi|hello)/n; # $1 is not set
+=head2 New bitwise operators
 
-This is equivalent to putting C<?:> at the beginning of every capturing group.
+A new experimental facility has been added that makes the four standard
+bitwise operators (C<& | ^ ~>) treat their operands consistently as
+numbers, and introduces four new dotted operators (C<&. |. ^. ~.>) that
+treat their operands consistently as strings.  The same applies to the
+assignment variants (C<&= |= ^= &.= |.= ^.=>).
 
-See L<perlre/"n"> for more information.
+To use this, enable the "bitwise" feature and disable the
+"experimental::bitwise" warnings category.  See L<perlop/Bitwise String
+Operators> for details.  [rt.perl.org #123466]
 
-=head2 C<prototype> with no arguments
+=head2 C<no re> covers more and is lexical
 
-C<prototype()> with no arguments now infers C<$_>.  [perl #123514]
+Previously running C<no re> would only turn off a few things. Now it
+turns off all the enabled things. For example, previously, you
+couldn't turn off debugging, once enabled, inside the same block.
 
-=head2 C<use re 'strict'>
+=head1 Incompatible Changes
 
-This applies stricter syntax rules to regular expression patterns
-compiled within its scope, which hopefully will alert you to typos and
-other unintentional behavior that backwards-compatibility issues prevent
-us from doing in normal regular expression compilations.  Because the
-behavior of this is subject to change in future Perl releases as we gain
-experience, using this pragma will raise a category
-C<experimental:re_strict> warning.
-See L<'strict' in re|re/'strict' mode>.
+There are no changes intentionally incompatible with 5.21.8.
+If any exist, they are bugs, and we request that you submit a
+report.  See L</Reporting Bugs> below.
 
-=head2 New "const" subroutine attribute
+=head1 Modules and Pragmata
 
-The "const" attribute can be applied to an anonymous subroutine.  It causes
-it to be executed immediately when it is cloned.  Its value is captured and
-used to create a new constant subroutine that is returned.  This feature is
-experimental.  See L<perlsub/Constant Functions>.
+=head2 Updated Modules and Pragmata
 
-=head1 Incompatible Changes
+=over 4
 
-=head2 sub signatures moved before attributes
+=item *
 
-The experimental sub signatures feature, as introduced in 5.20, parsed
-signatures after attributes.  In this release, the positioning has been
-moved such that signatures occur in exactly the same positioning a
-prototype would be found.
+L<attributes> has been upgraded from version 0.25 to 0.26.
 
-=head1 Modules and Pragmata
+=item *
 
-=head2 Updated Modules and Pragmata
+L<B> has been upgraded from version 1.55 to 1.56.
+
+=item *
+
+L<B::Debug> has been upgraded from version 1.22 to 1.23.
+
+=item *
+
+L<B::Deparse> has been upgraded from version 1.32 to 1.33.
 
 =over 4
 
 =item *
 
-L<arybase> has been upgraded from version 0.09 to 0.10.
+Deparse now provides a defined state sub in inner subs.
+
+=item *
+
+Since version Perl 5.21.6, Deparse would croak on special constants, but
+this has now been fixed.
+
+=back
+
+=item *
+
+L<Benchmark> has been upgraded from version 1.19 to 1.20.
 
 =item *
 
-L<attributes> has been upgraded from version 0.24 to 0.25.
+L<bigint>, L<bignum>, L<bigrat> have been upgraded to version 0.39.
 
-Minor internal change only.
+Document in CAVEATS that using strings as numbers won't always invoke
+the big number overloading, and how to invoke it.  [rt.perl.org #123064]
 
 =item *
 
-L<autodie> has been upgraded from version 2.25 to 2.26.
+L<bignum> has been upgraded from version 0.38 to 0.39.
 
 =item *
 
-L<B> has been upgraded from version 1.54 to 1.55.
+L<Carp> has been upgraded from version 1.34 to 1.35.
 
-A bug where, after an ithread creation or psuedofork, special/immortal SVs in
-the child ithread/psuedoprocess did not have the correct class of
-C<B::SPECIAL>, has been fixed.
+=over 4
+
+=item *
 
-The C<id> and C<outid> PADLIST methods have been added.
+Carp now handles non-ASCII platforms better.
 
 =item *
 
-L<B::Deparse> has been upgraded from version 1.31 to 1.32.
+Off-by-one error fix for Perl E<lt> 5.14.
+
+=back
 
-Deparsing C<BEGIN { undef &foo }> with the B<-w> switch enabled started to
-emit 'uninitialized' warnings in Perl 5.14.  This has been fixed.
+=item *
 
-Deparsing calls to subs with a C<(;+)> prototype resulted in an infinite
-loop.  The C<(;$>) C<(_)> and C<(;_)> prototypes were given the wrong
-precedence, causing C<foo($aE<lt>$b)> to be deparsed without the parentheses.
+L<Config::Perl::V> has been upgraded from version 0.22 to 0.23.
 
 =item *
 
-L<Compress::Raw::Bzip2> has been upgraded from version 2.067 to 2.068.
+L<constant> has been upgraded from version 1.32 to 1.33.
 
 =item *
 
-L<Compress::Raw::Zlib> has been upgraded from version 2.067 to 2.068.
+L<CPAN::Meta::Requirements> has been upgraded from version 2.131 to 2.132
 
 =item *
 
-L<CPAN::Meta::Requirements> has been upgraded from version 2.130 to 2.131.
+L<Data::Dumper> has been upgraded from version 2.156 to 2.157.
 
 =item *
 
-L<Data::Dumper> has been upgraded from version 2.155 to 2.156.
+L<Devel::Peek> has been upgraded from version 1.21 to 1.22.
 
 =item *
 
-L<DB_File> has been upgraded from version 1.834 to 1.835.
+L<DynaLoader> has been upgraded from version 1.30 to 1.31.
 
 =item *
 
-L<Devel::Peek> has been upgraded from version 1.20 to 1.21.
+L<Encode> has been upgraded from version 2.67 to 2.70.
+
+Building in C++ mode on Windows now works.
 
 =item *
 
-L<Devel::PPPort> has been upgraded from version 3.25 to 3.28.
+L<encoding> has been upgraded from version 2.12 to 2.13.
 
 =item *
 
-L<Digest::MD5> has been upgraded from version 2.53 to 2.54.
+L<Errno> has been upgraded from version 1.22 to 1.23.
+
+Add C<-P> to the preprocessor command-line on GCC 5.  GCC added extra
+line directives, breaking parsing of error code definitions.  [rt.perl.org
+#123784]
 
 =item *
 
-L<Digest::SHA> has been upgraded from version 5.93 to 5.95.
+L<ExtUtils::Miniperl> has been upgraded from version 1.03 to 1.04.
 
 =item *
 
-L<DynaLoader> has been upgraded from version 1.29 to 1.30.
+L<feature> has been upgraded from version 1.39 to 1.40.
 
 =item *
 
-L<ExtUtils::Command> has been upgraded from version 1.18 to 1.20.
+L<HTTP::Tiny> has been upgraded from version 0.053 to 0.054.
 
 =item *
 
-L<ExtUtils::Manifest> has been upgraded from version 1.69 to 1.70.
+L<Opcode> has been upgraded from version 1.31 to 1.32.
 
 =item *
 
-L<File::Glob> has been upgraded from version 1.23 to 1.24.
+L<overload> has been upgraded from version 1.24 to 1.25.
 
-Avoid SvIV() expanding to call get_sv() three times in a few
-places. [perl #123606]
+=item *
+
+L<Perl::OSType> has been upgraded from version 1.007 to 1.008.
 
 =item *
 
-L<Filter::Util::Call> has been upgraded from version 1.51 to 1.54.
+L<perlfaq> has been upgraded from version 5.0150046 to 5.021009.
 
 =item *
 
-L<Getopt::Long> has been upgraded from version 2.42 to 2.43.
+L<PerlIO::scalar> has been upgraded from version 0.21 to 0.22.
+
+Attempting to write at file positions impossible for the platform now
+fail early rather than wrapping at 4GB.
 
 =item *
 
-L<IO::Compress::Base> has been upgraded from version 2.067 to 2.068.
+L<Pod::Parser> has been upgraded from version 1.62 to 1.63.
 
 =item *
 
-L<IO::Socket::IP> has been upgraded from version 0.34 to 0.36.
+L<Pod::Perldoc> has been upgraded from version 3.24 to 3.25.
 
 =item *
 
-L<MIME::Base64> has been upgraded from version 3.14 to 3.15.
+L<POSIX> has been upgraded from version 1.49 to 1.51.
 
 =item *
 
-L<Module::CoreList> has been upgraded from version 5.20141220 to 5.20150120.
+L<re> has been upgraded from version 0.30 to 0.31.
 
 =item *
 
-L<Module::Load::Conditional> has been upgraded from version 0.62 to 0.64.
+L<Socket> has been upgraded from version 2.016 to 2.018.
 
 =item *
 
-L<Module::Metadata> has been upgraded from version 1.000024 to 1.000026.
+L<Storable> has been upgraded from version 2.52 to 2.53.
 
 =item *
 
-L<Opcode> has been upgraded from version 1.30 to 1.31.
+L<Test::Simple> has been upgraded from version 1.301001_097 to 1.301001_098.
 
 =item *
 
-L<PerlIO::encoding> has been upgraded from version 0.20 to 0.21.
+L<threads::shared> has been upgraded from version 1.47 to 1.48.
 
 =item *
 
-L<Pod::Simple> has been upgraded from version 3.28 to 3.29.
+L<Unicode::Collate> has been upgraded from version 1.10 to 1.11.
 
 =item *
 
-L<POSIX> has been upgraded from version 1.48 to 1.49.
+L<Unicode::UCD> has been upgraded from version 0.59 to 0.61.
+
+=over 4
 
 =item *
 
-L<re> has been upgraded from version 0.28 to 0.30.
+A new function L<property_values()|Unicode::UCD/prop_values()>
+has been added to return a given property's possible values.
 
 =item *
 
-L<Safe> has been upgraded from version 2.38 to 2.39.
+A new function L<charprop()|Unicode::UCD/charprop()>
+has been added to return the value of a given property for a given code
+point.
 
-C<reval> was not propagating void context properly.
+=item *
+
+A new function L<charprops_all()|Unicode::UCD/charprops_all()>
+has been added to return the values of all Unicode properties for a
+given code point.
 
 =item *
 
-L<SDBM_File> has been upgraded from version 1.12 to 1.13.
+A bug has been fixed so that L<propaliases()|Unicode::UCD/prop_aliases()>
+returns the correct short and long names for the Perl extensions where
+it was incorrect.
 
-Simplified the build process.  [perl #123413]
+=item *
+
+A bug has been fixed so that
+L<prop_value_aliases()|Unicode::UCD/prop_value_aliases()>
+returns C<undef> instead of a wrong result for properties that are Perl
+extensions.
 
 =item *
 
-L<Test::Harness> has been upgraded from version 3.34 to 3.35.
+This module now works on EBCDIC platforms.
+
+=back
 
 =item *
 
-L<Test::Simple> has been upgraded from version 1.301001_090 to 1.301001_097.
+L<VMS::Stdio> has been upgraded from version 2.4 to 2.41.
 
 =item *
 
-L<Unicode::Collate> has been upgraded from version 1.09 to 1.10.
+L<warnings> has been upgraded from version 1.30 to 1.31.
 
 =item *
 
-L<VMS::DCLsym> has been upgraded from version 1.05 to 1.06.
+L<Win32> has been upgraded from version 0.49 to 0.51.
+
+GetOSName() now supports Windows 8.1, and building in C++ mode now works.
 
 =item *
 
-L<warnings> has been upgraded from version 1.29 to 1.30.
+L<Win32API::File> has been upgraded from version 0.1201 to 0.1202
+
+Building in C++ mode now works.
 
 =back
 
@@ -262,191 +313,210 @@ L<warnings> has been upgraded from version 1.29 to 1.30.
 
 =head2 New Documentation
 
-=head3 L<perlunicook>
+=head3 L<perlrebackslash>
 
-This document, by Tom Christiansen, provides examples of handling Unicode in 
-Perl.
+=over 4
 
-=head1 Diagnostics
+=item *
 
-The following additions or changes have been made to diagnostic output,
-including warnings and fatal error messages.  For the complete list of
-diagnostic messages, see L<perldiag>.
+Added documentation of C<\b{sb}>, C<\b{wb}>, C<\b{gcb}>, and C<\b{g}>.
 
-=head2 New Diagnostics
+=back
 
-=head3 New Errors
+=head3 L<perlrequick>
 
 =over 4
 
 =item *
 
-L<Bad symbol for scalar|perldiag/"Bad symbol for scalar">
+Added example for C<\b{wb}>.
+
+=back
+
+=head3 L<perlretut>
 
-(P) An internal request asked to add a scalar entry to something that
-wasn't a symbol table entry.
+=over 4
 
 =item *
 
-L<:const is not permitted on named subroutines|perldiag/":const is not permitted on named subroutines">
+Added example for C<\b{wb}>.
+
+=back
+
+=head2 Changes to Existing Documentation
+
+=head3 L<perlunicode>
+
+=over 4
+
+=item *
 
-(F) The "const" attribute causes an anonymous subroutine to be run and
-its value captured at the time that it is cloned.  Names subroutines are
-not cloned like this, so the attribute does not make sense on them.
+Update B<Default Word Boundaries> under
+L<perlunicode/"Unicode Regular Expression Support Level">'s
+B<Extended Unicode Support>.
 
 =back
 
-=head3 New Warnings
+=head3 L<perlunicook>
 
 =over 4
 
 =item *
 
-L<:const is experimental|perldiag/":const is experimental">
+Clarify that autodie E<gt>= 2.26 works with C<use open>.
+
+=item *
+
+Correct warning message for C<use autodie> and C<use open>.
+
+=back
 
-(S experimental::const_attr) The "const" attribute is experimental.
-If you want to use the feature, disable the warning with C<no warnings
-'experimental::const_attr'>, but know that in doing so you are taking
-the risk that your code may break in a future Perl version.
+=head3 L<perlfaq>
+
+=over 4
 
 =item *
 
-L<Non-finite repeat count does nothing|perldiag/"Non-finite repeat count does nothing">
+L<perlfaq> has been synchronized with version 5.021009 from CPAN.
 
-(W numeric) You tried to execute the
-L<C<x>|perlop/Multiplicative Operators> repetition operator C<Inf> (or
-C<-Inf>) or C<NaN> times, which doesn't make sense.
+=back
+
+=head3 L<perlop>
+
+=over 4
 
 =item *
 
-L<Useless use of attribute "const"|perldiag/Useless use of attribute "const">
+Correct the version number which removes C<m?PATTERN?>. It was Perl 5.22.0.
+
+=back
+
+=head3 L<perlvar>
 
-(W misc) The "const" attribute has no effect except
-on anonymous closure prototypes.  You applied it to
-a subroutine via L<attributes.pm|attributes>.  This is only useful
-inside an attribute handler for an anonymous subroutine.
+=over 4
 
 =item *
 
-L<Unusual use of %s in void context|perldiag/"Unusual use of %s in void context">
+Further clarify version number representations and usage.
 
-(W void_unusual) Similar to the "Useless use of %s in void context"
-warning, but only turned on by the top-level "pedantic" warning
-category, used for e.g. C<grep> in void context, which may indicate a
-bug, but could also just be someone using C<grep> for its side-effects
-as a loop.
+=back
 
-Enabled as part of "extra" warnings, not in the "all" category. See
-L<warnings> for details
+=head3 L<perlmodstyle>
+
+=over 4
 
 =item *
 
-L<E<quot>use re 'strict'E<quot> is experimental|perldiag/"use re 'strict'" is experimental>
+Instead of pointing to the module list, we are now pointing to
+L<PrePAN|http://prepan.org/>.
+
+=back
+
+=head1 Diagnostics
+
+The following additions or changes have been made to diagnostic output,
+including warnings and fatal error messages.  For the complete list of
+diagnostic messages, see L<perldiag>.
 
-(S experimental::re_strict) The things that are different when a regular
-expression pattern is compiled under C<'strict'> are subject to change
-in future Perl releases in incompatible ways.  This means that a pattern
-that compiles today may not in a future Perl release.  This warning is
-to alert you to that risk.
+=head2 New Diagnostics
 
-L<Wide character (U+%X) in %s|perldiag/"Wide character (U+%X) in %s">
+=head3 New Warnings
+
+=over 4
+
+=item *
 
-(W locale) While in a single-byte locale (I<i.e.>, a non-UTF-8
-one), a multi-byte character was encountered.   Perl considers this
-character to be the specified Unicode code point.  Combining non-UTF8
-locales and Unicode is dangerous.  Almost certainly some characters
-will have two different representations.  For example, in the ISO 8859-7
-(Greek) locale, the code point 0xC3 represents a Capital Gamma.  But so
-also does 0x393.  This will make string comparisons unreliable.
+L<'%s' is an unknown bound type in regex|perldiag/"'%s' is an unknown bound type in regex; marked by <-- HERE in m/%s/">
 
-You likely need to figure out how this multi-byte character got mixed up
-with your single-byte locale (or perhaps you thought you had a UTF-8
-locale, but Perl disagrees).
+You used C<\b{...}> or C<\B{...}> and the C<...> is not known to
+Perl.  The current valid ones are given in
+L<perlrebackslash/\b{}, \b, \B{}, \B>.
 
 =item *
 
-L<Both or neither range ends should be Unicode in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>|perldiag/"Both or neither range ends should be Unicode in regex; marked by <-- HERE in m/%s/">
+L<Use of \b{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale|perldiag/"Use of \b{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale">
 
-(W regexp) (only under C<S<use re 'strict'>> or within C<(?[...])>)
+You are matching a regular expression using locale rules,
+and a Unicode boundary is being matched, but the locale is not a Unicode
+one.  This doesn't make sense.  Perl will continue, assuming a Unicode
+(UTF-8) locale, but the results could well be wrong except if the locale
+happens to be ISO-8859-1 (Latin1) where this message is spurious and can
+be ignored.
 
-In a bracketed character class in a regular expression pattern, you
-had a range which has exactly one end of it specified using C<\N{}>, and
-the other end is specified using a non-portable mechanism.  Perl treats
-the range as a Unicode range, that is, all the characters in it are
-considered to be the Unicode characters, and which may be different code
-points on some platforms Perl runs on.  For example, C<[\N{U+06}-\x08]>
-is treated as if you had instead said C<[\N{U+06}-\N{U+08}]>, that is it
-matches the characters whose code points in Unicode are 6, 7, and 8.
-But that C<\x08> might indicate that you meant something different, so
-the warning gets raised.
+=item *
+
+L<< Using E<sol>u for '%s' instead of E<sol>%s in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>|perldiag/"Using E<sol>u for '%s' instead of E<sol>%s in regex; marked by <-- HERE in mE<sol>%sE<sol>" >>
+
+You used a Unicode boundary (C<\b{...}> or C<\B{...}>) in a
+portion of a regular expression where the character set modifiers C</a>
+or C</aa> are in effect.  These two modifiers indicate an ASCII
+interpretation, and this doesn't make sense for a Unicode definition.
+The generated regular expression will compile so that the boundary uses
+all of Unicode.  No other portion of the regular expression is affected.
 
 =item *
 
-L<Ranges of ASCII printables should be some subset of "0-9", "A-Z", or "a-z" in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>|perldiag/"Ranges of ASCII printables should be some subset of "0-9", "A-Z", or "a-z" in regex; marked by <-- HERE in mE<sol>%sE<sol>">
+L<The bitwise feature is experimental|perldiag/"The bitwise feature is experimental">
 
-(W regexp) (only under C<S<use re 'strict'>> or within C<(?[...])>)
+This warning is emitted if you use bitwise
+operators (C<& | ^ ~ &. |. ^. ~.>) with the "bitwise" feature enabled.
+Simply suppress the warning if you want to use the feature, but know
+that in doing so you are taking the risk of using an experimental
+feature which may change or be removed in a future Perl version:
 
-Stricter rules help to find typos and other errors.  Perhaps you didn't
-even intend a range here, if the C<"-"> was meant to be some other
-character, or should have been escaped (like C<"\-">).  If you did
-intend a range, the one that was used is not portable between ASCII and
-EBCDIC platforms, and doesn't have an obvious meaning to a casual
-reader.
+    no warnings "experimental::bitwise";
+    use feature "bitwise";
+    $x |.= $y;
 
- [3-7]    # OK; Obvious and portable
- [d-g]    # OK; Obvious and portable
- [A-Y]    # OK; Obvious and portable
- [A-z]    # WRONG; Not portable; not clear what is meant
- [a-Z]    # WRONG; Not portable; not clear what is meant
- [%-.]    # WRONG; Not portable; not clear what is meant
- [\x41-Z] # WRONG; Not portable; not obvious to non-geek
+=back
 
-(You can force portability by specifying a Unicode range, which means that
-the endpoints are specified by
-L<C<\N{...}>|perlrecharclass/Character Ranges>, but the meaning may
-still not be obvious.)
-The stricter rules require that ranges that start or stop with an ASCII
-character that is not a control have all their endpoints be the literal
-character, and not some escape sequence (like C<"\x41">), and the ranges
-must be all digits, or all uppercase letters, or all lowercase letters.
+=head2 Changes to Existing Diagnostics
+
+=over 4
 
 =item *
 
-L<Ranges of digits should be from the same group in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>|perldiag/"Ranges of digits should be from the same group in regex; marked by <-- HERE in m/%s/">
+B<Unusual use of %s in void context> has been removed. It might
+come back in a future release.
+
+=item *
 
-(W regexp) (only under C<S<use re 'strict'>> or within C<(?[...])>)
+L<Argument "%s" isn't numeric%s|perldiag/"Argument "%s" isn't numeric%s">
+now adds the following note:
 
-Stricter rules help to find typos and other errors.  You included a
-range, and at least one of the end points is a decimal digit.  Under the
-stricter rules, when this happens, both end points should be digits in
-the same group of 10 consecutive digits.
+    Note that for the C<Inf> and C<NaN> (infinity and not-a-number) the
+    definition of "numeric" is somewhat unusual: the strings themselves
+    (like "Inf") are considered numeric, and anything following them is
+    considered non-numeric.
 
 =item *
 
-L<"%s" is more clearly written simply as "%s" in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>|perldiag/"%s" is more clearly written simply as "%s" in regex; marked by <-- HERE in mE<sol>%sE<sol>>
+B<Possible precedence problem on bitwise %c operator> reworded as
+L<Possible precedence problem on bitwise %s operator|perldiag/"Possible precedence problem on bitwise %s operator">.
 
-(W regexp) (only under C<S<use re 'strict'>> or within C<(?[...])>)
+=back
+
+=head1 Utility Changes
 
-You specified a character that has the given plainer way of writing it,
-and which is also portable to platforms running with different character
-sets.
+=head2 L<h2ph>
+
+=over 4
+
+=item *
+
+F<h2ph> now handles hexadecimal constants in the compiler's predefined
+macro definitions, as visible in C<$Config{cppsymbols}>.  [rt.perl.org
+#123784]
 
 =back
 
-=head2 Changes to Existing Diagnostics
+=head2 L<encguess>
 
 =over 4
 
 =item *
 
-The message
-L<Locale '%s' may not work well.%s|perldiag/"Locale '%s' may not work well.%s">
-is no longer raised unless the problemtatic locale is actually used in
-the Perl program.  Previously it was raised if it merely was the
-underlying locale.  All Perl programs have an underlying locale at all
-times, but something like a C<S<use locale>> is needed for that locale
-to actually have some effect.  This message will not be raised when
-the underlying locale is hidden.
+No longer depends on non-core module anymore.
 
 =back
 
@@ -456,9 +526,7 @@ the underlying locale is hidden.
 
 =item *
 
-pthreads and lcl will be linked by default if present. This allows XS modules 
-that require threading to work on non-threaded perls. Note that you must still 
-pass C<-Dusethreads> if you want a threaded perl.
+F<Configure> now checks for F<lrintl>, F<lroundl>, F<llrintl>, and F<llroundl>.
 
 =back
 
@@ -468,65 +536,69 @@ pass C<-Dusethreads> if you want a threaded perl.
 
 =item *
 
-A new test script, F<bigmem/subst.t>, has been added to test memory usage of
-subst on very large strings.
+Added F<t/op/dump.t> for testing C<dump>.
 
-=item *
+=back
 
-A new test script, F<op/anonconst.t>, has been added to test experimental
-:const subroutines.
+=head1 Deprecations
 
-=item *
+=head2 Support for new warnings categories outside of "all"
 
-A new test script, F<re/reg_nocapture.t>, has been added to test the new
-C</n> regexp flag.
+The new option for warnings outside the B<all> category in the L<warnings>
+pragma has been removed for now.
 
-=back
+For more context, you can refer to the following
+L<discussion thread|http://www.nntp.perl.org/group/perl.perl5.porters/2015/01/msg225066.html>.
 
 =head1 Platform Support
 
 =head2 Platform-Specific Notes
 
+=head3 Win32
+
 =over 4
 
-=item Win32
+=item *
 
-=over 4
+Perl can now be built in C++ mode on Windows by setting the makefile macro
+C<USE_CPLUSPLUS> to the value "define".
 
 =item *
 
-Previously, on Visual C++ for Win64 built Perls only, when compiling every Perl
-XS module (including CPAN ones) and Perl aware .c file with a 64 bit Visual C++,
-would unconditionally have around a dozen warnings from hv_func.h.  These
-warnings have been silenced.  GCC all bitness and Visual C++ for Win32 were
-not affected.
+List form pipe open no longer falls back to the shell.
 
 =item *
 
-Support for building without PerlIO has been removed from the Windows
-makefiles.  Non-PerlIO builds were all but deprecated in Perl 5.18.0 and are
-already not supported by F<Configure> on POSIX systems.
+In release 5.21.8 compiling on VC with dmake was broken. Fixed.
 
 =item *
 
-Between 2 and 6 ms and 7 I/O calls have been saved per attempt to open a perl
-module for each path in C<@INC>.
+New C<DebugSymbols> and C<DebugFull> configuration options added to
+Windows makefiles.
 
-=back
+=item *
+
+L<B> now compiles again on Windows.
 
 =back
 
-=head1 Internal Changes
+=head3 Solaris
+
+Look for the Sun Studio compiler in both F</opt/solstudio*> and
+F</opt/solarisstudio*>.
+
+=head3 VMS
 
 =over 4
 
 =item *
 
-Added Perl_sv_get_backrefs() to determine if an SV is a weak-referent.
+When spawning a subprocess without waiting, the return value is now
+the correct PID.
 
-Function either returns an SV * of type AV, which contains the set of
-weakreferences which reference the passed in SV, or a simple RV * which
-is the only weakref to this item.
+=item *
+
+Fix a prototype so linking doesn't fail under the VMS C++ compiler.
 
 =back
 
@@ -536,91 +608,104 @@ is the only weakref to this item.
 
 =item *
 
-A bug in regular expression patterns that could lead to segfaults and
-other crashes has been fixed.  This occurred only in patterns compiled
-with C<"/i">, while taking into account the current POSIX locale (this usually
-means they have to be compiled within the scope of C<S<"use locale">>),
-and there must be a string of at least 128 consecutive bytes to match.
-[perl #123539]
+Patterns starting with C</.*/> are now fast again. [rt.perl.org #123743]
 
 =item *
 
-C<s///> now works on very long strings instead of dying with 'Substitution
-loop'.  [perl #103260] [perl #123071]
+The original visible value of C<$/> is now preserved when it is set to
+an invalid value.  Previously if you set C<$/> to a reference to an
+array, for example, perl would produce a runtime error and not set
+C<PL_rs>, but perl code that checked C<$/> would see the array
+reference.  [rt.perl.org #123218]
 
 =item *
 
-C<gmtime> no longer crashes with not-a-number values.  [perl #123495]
+In a regular expression pattern, a POSIX class, like C<[:ascii:]>, must
+be inside a bracketed character class, like C</qr[[:ascii:]]>.  A
+warning is issued when something looking like a POSIX class is not
+inside a bracketed class.  That warning wasn't getting generated when
+the POSIX class was negated: C<[:^ascii:]>.  This is now fixed.
 
 =item *
 
-C<\()> (reference to an empty list) and C<y///> with lexical $_ in scope
-could do a bad write past the end of the stack.  They have been fixed
-to extend the stack first.
+Fix a couple of other size calculation overflows.  [rt.perl.org #123554]
 
 =item *
 
-C<prototype()> with no arguments used to read the previous item on the
-stack, so C<print "foo", prototype()> would print foo's prototype.  It has
-been fixed to infer $_ instead.  [perl #123514]
+A bug introduced in 5.21.6, C<dump LABEL> acted the same as C<goto
+LABEL>.  This has been fixed.  [rt.perl.org #123836]
 
 =item *
 
-Some cases of lexical state subs inside predeclared subs could crash but no
-longer do.
+Perl 5.14.0 introduced a bug whereby C<eval { LABEL: }> would crash.  This
+has been fixed.  [rt.perl.org #123652]
 
 =item *
 
-Some cases of nested lexical state subs inside anonymous subs could cause
-'Bizarre copy' errors or possibly even crash.
+Various crashes due to the parser getting confused by syntax errors have
+been fixed.  [rt.perl.org #123617] [rt.perl.org #123737]
+[rt.perl.org #123753] [rt.perl.org #123677]
 
 =item *
 
-When trying to emit warnings, perl's default debugger (F<perl5db.pl>) was
-sometimes giving 'Undefined subroutine &DB::db_warn called' instead.  This
-bug, which started to occur in Perl 5.18, has been fixed.  [perl #123553]
+Code like C</$a[/> used to read the next line of input and treat it as
+though it came immediately after the opening bracket.  Some invalid code
+consequently would parse and run, but some code caused crashes, so this is
+now disallowed.  [rt.perl.org #123712]
 
 =item *
 
-Certain syntax errors in substitutions, such as C<< s/${E<lt>E<gt>{})// >>, would
-crash, and had done so since Perl 5.10.  (In some cases the crash did not
-start happening till 5.16.)  The crash has, of course, been fixed.
-[perl #123542]
+Fix argument underflow for C<pack>.  [rt.perl.org #123874]
 
 =item *
 
-A repeat expression like C<33 x ~3> could cause a large buffer
-overflow since the new output buffer size was not correctly handled by
-SvGROW().  An expression like this now properly produces a memory wrap
-panic.  [perl 123554]
+Fix handling of non-strict C<\x{}>. Now C<\x{}> is equivalent to C<\x{0}>
+instead of faulting.
 
 =item *
 
-C<< formline("@...", "a"); >> would crash.  The C<FF_CHECKNL> case in
-pp_formline() didn't set the pointer used to mark the chop position,
-which led to the C<FF_MORE> case crashing with a segmentation fault.
-This has been fixed.  [perl #123538]
+C<stat -t> is now no longer treated as stackable, just like C<-t stat>.
+[rt.perl.org #123816]
+
+=item *
+
+The following no longer causes a SEGV: C<qr{x+(y(?0))*}>.
+
+=item *
+
+Fixed infinite loop in parsing backrefs in regexp patterns.
+
+=item *
+
+Several minor bug fixes in behavior of Inf and NaN, including
+warnings when stringifying Inf-like or NaN-like strings. For example,
+"NaNcy" doesn't numify to NaN anymore.
+
+=item *
+
+Only stringy classnames are now shared. This fixes some failures in L<autobox>.  [rt.cpan.org #100819]
 
 =back
 
 =head1 Acknowledgements
 
-Perl 5.21.8 represents approximately 4 weeks of development since Perl 5.21.7
-and contains approximately 26,000 lines of changes across 750 files from 27
+Perl 5.21.9 represents approximately 4 weeks of development since Perl 5.21.8
+and contains approximately 170,000 lines of changes across 520 files from 32
 authors.
 
 Excluding auto-generated files, documentation and release tools, there were
-approximately 13,000 lines of changes to 410 .pm, .t, .c and .h files.
+approximately 160,000 lines of changes to 270 .pm, .t, .c and .h files.
 
 Perl continues to flourish into its third decade thanks to a vibrant community
 of users and developers. The following people are known to have contributed the
-improvements that became Perl 5.21.8:
-
-Aaron Crane, Andreas Voegele, Chad Granum, Chris 'BinGOs' Williams, Craig A.
-Berry, Daniel Dragan, David Mitchell, E. Choroba, Ed J, Father Chrysostomos,
-H.Merijn Brand, Hugo van der Sanden, James E Keenan, Jarkko Hietaniemi, Karen
-Etheridge, Karl Williamson, Matthew Horsfall, Max Maischein, Peter Martini,
-Rafael Garcia-Suarez, Ricardo Signes, Rostislav Skudnov, Slaven Rezic, Steve
+improvements that became Perl 5.21.9:
+
+Chad Granum, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari
+Mannsåker, Daniel Dragan, David Golden, David Mitchell, Father Chrysostomos,
+H.Merijn Brand, Hugo van der Sanden, James E Keenan, James Raspass, Jarkko
+Hietaniemi, Karen Etheridge, Karl Williamson, Kent Fredric, Lajos Veres, Leon
+Timmermans, Lukas Mai, Mathieu Arnold, Matthew Horsfall, Peter Martini, Petr
+Písař, Randy Stauner, Ricardo Signes, Sawyer X, Shlomi Fish, Sisyphus, Steve
 Hay, Tony Cook, Yves Orton, Ævar Arnfjörð Bjarmason.
 
 The list above is almost certainly incomplete as it is automatically generated
index 3ca9bd3..770b8ef 100644 (file)
@@ -189,6 +189,11 @@ alternatives.
 that expected a numeric value instead.  If you're fortunate the message
 will identify which operator was so unfortunate.
 
+Note that for the C<Inf> and C<NaN> (infinity and not-a-number) the
+definition of "numeric" is somewhat unusual: the strings themselves
+(like "Inf") are considered numeric, and anything following them is
+considered non-numeric.
+
 =item Argument list not closed for PerlIO layer "%s"
 
 (W layer) When pushing a layer with arguments onto the Perl I/O
@@ -2889,6 +2894,12 @@ with 'useperlio'.
 (F) Your machine doesn't implement the sockatmark() functionality,
 neither as a system call nor an ioctl call (SIOCATMARK).
 
+=item '%s' is an unknown bound type in regex; marked by <-- HERE in m/%s/
+
+(F) You used C<\b{...}> or C<\B{...}> and the C<...> is not known to
+Perl.  The current valid ones are given in
+L<perlrebackslash/\b{}, \b, \B{}, \B>.
+
 =item "%s" is more clearly written simply as "%s" in regex; marked by <-- HERE in m/%s/
 
 (W regexp) (only under C<S<use re 'strict'>> or within C<(?[...])>)
@@ -3296,45 +3307,6 @@ arguments than were supplied, but might be used in the future for
 other cases where we can statically determine that arguments to
 functions are missing, e.g. for the L<perlfunc/pack> function.
 
-=item Ranges of ASCII printables should be some subset of "0-9", "A-Z", or
-"a-z" in regex; marked by <-- HERE in m/%s/
-
-(W regexp) (only under C<S<use re 'strict'>> or within C<(?[...])>)
-
-Stricter rules help to find typos and other errors.  Perhaps you didn't
-even intend a range here, if the C<"-"> was meant to be some other
-character, or should have been escaped (like C<"\-">).  If you did
-intend a range, the one that was used is not portable between ASCII and
-EBCDIC platforms, and doesn't have an obvious meaning to a casual
-reader.
-
- [3-7]    # OK; Obvious and portable
- [d-g]    # OK; Obvious and portable
- [A-Y]    # OK; Obvious and portable
- [A-z]    # WRONG; Not portable; not clear what is meant
- [a-Z]    # WRONG; Not portable; not clear what is meant
- [%-.]    # WRONG; Not portable; not clear what is meant
- [\x41-Z] # WRONG; Not portable; not obvious to non-geek
-
-(You can force portability by specifying a Unicode range, which means that
-the endpoints are specified by
-L<C<\N{...}>|perlrecharclass/Character Ranges>, but the meaning may
-still not be obvious.)
-The stricter rules require that ranges that start or stop with an ASCII
-character that is not a control have all their endpoints be the literal
-character, and not some escape sequence (like C<"\x41">), and the ranges
-must be all digits, or all uppercase letters, or all lowercase letters.
-
-=item Ranges of digits should be from the same group in regex; marked by
-<-- HERE in m/%s/
-
-(W regexp) (only under C<S<use re 'strict'>> or within C<(?[...])>)
-
-Stricter rules help to find typos and other errors.  You included a
-range, and at least one of the end points is a decimal digit.  Under the
-stricter rules, when this happens, both end points should be digits in
-the same group of 10 consecutive digits.
-
 =item Missing argument to -%c
 
 (F) The argument to the indicated command line switch must follow
@@ -4738,7 +4710,7 @@ Note this may be also triggered for constructs like:
 
     sub { 1 if die; }
 
-=item Possible precedence problem on bitwise %c operator
+=item Possible precedence problem on bitwise %s operator
 
 (W precedence) Your program uses a bitwise logical operator in conjunction
 with a numeric comparison operator, like this :
@@ -4899,6 +4871,45 @@ are outside the range which can be represented by integers internally.
 One possible workaround is to force Perl to use magical string increment
 by prepending "0" to your numbers.
 
+=item Ranges of ASCII printables should be some subset of "0-9", "A-Z", or
+"a-z" in regex; marked by <-- HERE in m/%s/
+
+(W regexp) (only under C<S<use re 'strict'>> or within C<(?[...])>)
+
+Stricter rules help to find typos and other errors.  Perhaps you didn't
+even intend a range here, if the C<"-"> was meant to be some other
+character, or should have been escaped (like C<"\-">).  If you did
+intend a range, the one that was used is not portable between ASCII and
+EBCDIC platforms, and doesn't have an obvious meaning to a casual
+reader.
+
+ [3-7]    # OK; Obvious and portable
+ [d-g]    # OK; Obvious and portable
+ [A-Y]    # OK; Obvious and portable
+ [A-z]    # WRONG; Not portable; not clear what is meant
+ [a-Z]    # WRONG; Not portable; not clear what is meant
+ [%-.]    # WRONG; Not portable; not clear what is meant
+ [\x41-Z] # WRONG; Not portable; not obvious to non-geek
+
+(You can force portability by specifying a Unicode range, which means that
+the endpoints are specified by
+L<C<\N{...}>|perlrecharclass/Character Ranges>, but the meaning may
+still not be obvious.)
+The stricter rules require that ranges that start or stop with an ASCII
+character that is not a control have all their endpoints be the literal
+character, and not some escape sequence (like C<"\x41">), and the ranges
+must be all digits, or all uppercase letters, or all lowercase letters.
+
+=item Ranges of digits should be from the same group in regex; marked by
+<-- HERE in m/%s/
+
+(W regexp) (only under C<S<use re 'strict'>> or within C<(?[...])>)
+
+Stricter rules help to find typos and other errors.  You included a
+range, and at least one of the end points is a decimal digit.  Under the
+stricter rules, when this happens, both end points should be digits in
+the same group of 10 consecutive digits.
+
 =item readdir() attempted on invalid dirhandle %s
 
 (W io) The dirhandle you're reading from is either closed or not really
@@ -5745,6 +5756,18 @@ as a compiler directive.  You may say only one of
 This is to prevent the problem of one module changing the array base out
 from under another module inadvertently.  See L<perlvar/$[> and L<arybase>.
 
+=item The bitwise feature is experimental
+
+(S experimental::bitwise) This warning is emitted if you use bitwise
+operators (C<& | ^ ~ &. |. ^. ~.>) with the "bitwise" feature enabled.
+Simply suppress the warning if you want to use the feature, but know
+that in doing so you are taking the risk of using an experimental
+feature which may change or be removed in a future Perl version:
+
+    no warnings "experimental::bitwise";
+    use feature "bitwise";
+    $x |.= $y;
+
 =item The crypt() function is unimplemented due to excessive paranoia.
 
 (F) Configure couldn't find the crypt() function on your machine,
@@ -6579,17 +6602,6 @@ since they are often used in statements like
 String constants that would normally evaluate to 0 or 1 are warned
 about.
 
-=item Unusual use of %s in void context
-
-(W void_unusual) Similar to the "Useless use of %s in void context"
-warning, but only turned on by the top-level "pedantic" warning
-category, used for e.g. C<grep> in void context, which may indicate a
-bug, but could also just be someone using C<grep> for its side-effects
-as a loop.
-
-Enabled as part of "extra" warnings, not in the "all" category. See
-L<warnings> for details
-
 =item Useless use of (?-p) in regex; marked by S<<-- HERE> in m/%s/
 
 (W regexp) The C<p> modifier cannot be turned off once set.  Trying to do
@@ -6632,6 +6644,15 @@ is deprecated.  See L<perlvar/"$[">.
 form if you wish to use an empty line as the terminator of the
 here-document.
 
+=item Use of \b{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale
+
+(W locale)  You are matching a regular expression using locale rules,
+and a Unicode boundary is being matched, but the locale is not a Unicode
+one.  This doesn't make sense.  Perl will continue, assuming a Unicode
+(UTF-8) locale, but the results could well be wrong except if the locale
+happens to be ISO-8859-1 (Latin1) where this message is spurious and can
+be ignored.
+
 =item Use of chdir('') or chdir(undef) as chdir() deprecated
 
 (D deprecated) chdir() with no arguments is documented to change to
@@ -6853,6 +6874,15 @@ a range.  For these, what should happen isn't clear at all.  In
 these circumstances, Perl discards all but the first character
 of the returned sequence, which is not likely what you want.
 
+=item Using /u for '%s' instead of /%s in regex; marked by <-- HERE in m/%s/
+
+(W regexp) You used a Unicode boundary (C<\b{...}> or C<\B{...}>) in a
+portion of a regular expression where the character set modifiers C</a>
+or C</aa> are in effect.  These two modifiers indicate an ASCII
+interpretation, and this doesn't make sense for a Unicode defintion.
+The generated regular expression will compile so that the boundary uses
+all of Unicode.  No other portion of the regular expression is affected.
+
 =item Using !~ with %s doesn't make sense
 
 (F) Using the C<!~> operator with C<s///r>, C<tr///r> or C<y///r> is
index c5f53d8..7564b97 100644 (file)
@@ -8,13 +8,13 @@ perldsc - Perl Data Structures Cookbook
 Perl lets us have complex data structures.  You can write something like
 this and all of a sudden, you'd have an array with three dimensions!
 
-    for $x (1 .. 10) {
-       for $y (1 .. 10) {
-           for $z (1 .. 10) {
-               $AoA[$x][$y][$z] =
-                   $x ** $y + $z;
-           }
-       }
+    for my $x (1 .. 10) {
+        for my $y (1 .. 10) {
+            for my $z (1 .. 10) {
+                $AoA[$x][$y][$z] =
+                    $x ** $y + $z;
+            }
+        }
     }
 
 Alas, however simple this may appear, underneath it's a much more
@@ -85,16 +85,16 @@ level.  It's just that you can I<use> it as though it were a
 two-dimensional one.  This is actually the way almost all C
 multidimensional arrays work as well.
 
-    $array[7][12]                      # array of arrays
-    $array[7]{string}                  # array of hashes
-    $hash{string}[7]                   # hash of arrays
-    $hash{string}{'another string'}    # hash of hashes
+    $array[7][12]                       # array of arrays
+    $array[7]{string}                   # array of hashes
+    $hash{string}[7]                    # hash of arrays
+    $hash{string}{'another string'}     # hash of hashes
 
 Now, because the top level contains only references, if you try to print
 out your array in with a simple print() function, you'll get something
 that doesn't look very nice, like this:
 
-    @AoA = ( [2, 3], [4, 5, 7], [0] );
+    my @AoA = ( [2, 3], [4, 5, 7], [0] );
     print $AoA[1][2];
   7
     print @AoA;
@@ -115,26 +115,29 @@ elements or else taking a reference to the same memory location
 repeatedly.  Here's the case where you just get the count instead
 of a nested array:
 
-    for $i (1..10) {
-       @array = somefunc($i);
-       $AoA[$i] = @array;      # WRONG!
+    for my $i (1..10) {
+        my @array = somefunc($i);
+        $AoA[$i] = @array;      # WRONG!
     }
 
 That's just the simple case of assigning an array to a scalar and getting
 its element count.  If that's what you really and truly want, then you
 might do well to consider being a tad more explicit about it, like this:
 
-    for $i (1..10) {
-       @array = somefunc($i);
-       $counts[$i] = scalar @array;
+    for my $i (1..10) {
+        my @array = somefunc($i);
+        $counts[$i] = scalar @array;
     }
 
 Here's the case of taking a reference to the same memory location
 again and again:
 
-    for $i (1..10) {
-       @array = somefunc($i);
-       $AoA[$i] = \@array;     # WRONG!
+    # Either without strict or having an outer-scope my @array;
+    # declaration.
+
+    for my $i (1..10) {
+        @array = somefunc($i);
+        $AoA[$i] = \@array;     # WRONG!
     }
 
 So, what's the big problem with that?  It looks right, doesn't it?
@@ -148,12 +151,12 @@ the following C program:
 
     #include <pwd.h>
     main() {
-       struct passwd *getpwnam(), *rp, *dp;
-       rp = getpwnam("root");
-       dp = getpwnam("daemon");
+        struct passwd *getpwnam(), *rp, *dp;
+        rp = getpwnam("root");
+        dp = getpwnam("daemon");
 
-       printf("daemon name is %s\nroot name is %s\n",
-               dp->pw_name, rp->pw_name);
+        printf("daemon name is %s\nroot name is %s\n",
+                dp->pw_name, rp->pw_name);
     }
 
 Which will print
@@ -168,9 +171,12 @@ hash constructor C<{}> instead.   Here's the right way to do the preceding
 broken code fragments:
 X<[]> X<{}>
 
-    for $i (1..10) {
-       @array = somefunc($i);
-       $AoA[$i] = [ @array ];
+    # Either without strict or having an outer-scope my @array;
+    # declaration.
+
+    for my $i (1..10) {
+        @array = somefunc($i);
+        $AoA[$i] = [ @array ];
     }
 
 The square brackets make a reference to a new array with a I<copy>
@@ -180,9 +186,11 @@ you want.
 Note that this will produce something similar, but it's
 much harder to read:
 
-    for $i (1..10) {
-       @array = 0 .. $i;
-       @{$AoA[$i]} = @array;
+    # Either without strict or having an outer-scope my @array;
+    # declaration.
+    for my $i (1..10) {
+        @array = 0 .. $i;
+        @{$AoA[$i]} = @array;
     }
 
 Is it the same?  Well, maybe so--and maybe not.  The subtle difference
@@ -214,7 +222,7 @@ efficient.
 Surprisingly, the following dangerous-looking construct will
 actually work out fine:
 
-    for $i (1..10) {
+    for my $i (1..10) {
         my @array = somefunc($i);
         $AoA[$i] = \@array;
     }
@@ -235,9 +243,9 @@ do the right thing behind the scenes.
 
 In summary:
 
-    $AoA[$i] = [ @array ];     # usually best
-    $AoA[$i] = \@array;                # perilous; just how my() was that array?
-    @{ $AoA[$i] } = @array;    # way too tricky for most programmers
+    $AoA[$i] = [ @array ];     # usually best
+    $AoA[$i] = \@array;        # perilous; just how my() was that array?
+    @{ $AoA[$i] } = @array;    # way too tricky for most programmers
 
 
 =head1 CAVEAT ON PRECEDENCE
@@ -247,8 +255,8 @@ Speaking of things like C<@{$AoA[$i]}>, the following are actually the
 same thing:
 X<< -> >>
 
-    $aref->[2][2]      # clear
-    $$aref[2][2]       # confusing
+    $aref->[2][2]       # clear
+    $$aref[2][2]        # confusing
 
 That's because Perl's precedence rules on its five prefix dereferencers
 (which look like someone swearing: C<$ @ * % &>) make them bind more
@@ -279,9 +287,9 @@ also disallow accidental "symbolic dereferencing".  Therefore if you'd done
 this:
 
     my $aref = [
-       [ "fred", "barney", "pebbles", "bambam", "dino", ],
-       [ "homer", "bart", "marge", "maggie", ],
-       [ "george", "jane", "elroy", "judy", ],
+        [ "fred", "barney", "pebbles", "bambam", "dino", ],
+        [ "homer", "bart", "marge", "maggie", ],
+        [ "george", "jane", "elroy", "judy", ],
     ];
 
     print $aref[2][2];
@@ -304,21 +312,21 @@ For example, given the assignment to $AoA above, here's the debugger output:
     DB<1> x $AoA
     $AoA = ARRAY(0x13b5a0)
        0  ARRAY(0x1f0a24)
-         0  'fred'
-         1  'barney'
-         2  'pebbles'
-         3  'bambam'
-         4  'dino'
+          0  'fred'
+          1  'barney'
+          2  'pebbles'
+          3  'bambam'
+          4  'dino'
        1  ARRAY(0x13b558)
-         0  'homer'
-         1  'bart'
-         2  'marge'
-         3  'maggie'
+          0  'homer'
+          1  'bart'
+          2  'marge'
+          3  'maggie'
        2  ARRAY(0x13b540)
-         0  'george'
-         1  'jane'
-         2  'elroy'
-         3  'judy'
+          0  'george'
+          1  'jane'
+          2  'elroy'
+          3  'judy'
 
 =head1 CODE EXAMPLES
 
@@ -454,10 +462,10 @@ X<hash of arrays> X<HoA>
 
  # print the whole thing sorted by number of members and name
  foreach $family ( sort {
-                           @{$HoA{$b}} <=> @{$HoA{$a}}
-                                       ||
-                                   $a cmp $b
-           } keys %HoA )
+                            @{$HoA{$b}} <=> @{$HoA{$a}}
+                                        ||
+                                    $a cmp $b
+            } keys %HoA )
  {
      print "$family: ", join(", ", sort @{ $HoA{$family} }), "\n";
  }
@@ -560,19 +568,19 @@ X<hash of hashes> X<HoH>
 
  %HoH = (
         flintstones => {
-               lead      => "fred",
-               pal       => "barney",
+                lead      => "fred",
+                pal       => "barney",
         },
         jetsons     => {
-               lead      => "george",
-               wife      => "jane",
-               "his boy" => "elroy",
+                lead      => "george",
+                wife      => "jane",
+                "his boy" => "elroy",
         },
         simpsons    => {
-               lead      => "homer",
-               wife      => "marge",
-               kid       => "bart",
-       },
+                lead      => "homer",
+                wife      => "marge",
+                kid       => "bart",
+        },
  );
 
 =head2 Generation of a HASH OF HASHES
@@ -649,7 +657,9 @@ X<hash of hashes> X<HoH>
 
 
  # print the whole thing sorted by number of members
- foreach $family ( sort { keys %{$HoH{$b}} <=> keys %{$HoH{$a}} } keys %HoH ) {
+ foreach $family ( sort { keys %{$HoH{$b}} <=> keys %{$HoH{$a}} }
+                                                             keys %HoH )
+ {
      print "$family: { ";
      for $role ( sort keys %{ $HoH{$family} } ) {
          print "$role=$HoH{$family}{$role} ";
@@ -662,10 +672,14 @@ X<hash of hashes> X<HoH>
  for ( qw(lead wife son daughter pal pet) ) { $rank{$_} = ++$i }
 
  # now print the whole thing sorted by number of members
- foreach $family ( sort { keys %{ $HoH{$b} } <=> keys %{ $HoH{$a} } } keys %HoH ) {
+ foreach $family ( sort { keys %{ $HoH{$b} } <=> keys %{ $HoH{$a} } }
+                                                             keys %HoH )
+ {
      print "$family: { ";
      # and print these according to rank order
-     for $role ( sort { $rank{$a} <=> $rank{$b} }  keys %{ $HoH{$family} } ) {
+     for $role ( sort { $rank{$a} <=> $rank{$b} }
+                                               keys %{ $HoH{$family} } )
+     {
          print "$role=$HoH{$family}{$role} ";
      }
      print "}\n";
@@ -681,12 +695,12 @@ Here's a sample showing how to create and use a record whose fields are of
 many different sorts:
 
      $rec = {
-        TEXT      => $string,
-        SEQUENCE  => [ @old_values ],
-        LOOKUP    => { %some_table },
-        THATCODE  => \&some_function,
-        THISCODE  => sub { $_[0] ** $_[1] },
-        HANDLE    => \*STDOUT,
+         TEXT      => $string,
+         SEQUENCE  => [ @old_values ],
+         LOOKUP    => { %some_table },
+         THATCODE  => \&some_function,
+         THISCODE  => sub { $_[0] ** $_[1] },
+         HANDLE    => \*STDOUT,
      };
 
      print $rec->{TEXT};
index ef47248..98e1aa9 100644 (file)
@@ -135,6 +135,18 @@ L<[perl #123630]|https://rt.perl.org/rt3/Ticket/Display.html?id=123630>.
 
 See also: L<perlsub/Constant Functions>
 
+=item String- and number-specific bitwise operators
+
+Introduced in: Perl 5.22.0
+
+See also: L<perlop/Bitwise String Operators>
+
+Using this feature triggers warnings in the category
+C<experimental::bitwise>.
+
+The ticket for this feature is
+L<[perl #123707]|https://rt.perl.org/rt3/Ticket/Display.html?id=123707>.
+
 =item The <:win32> IO pseudolayer
 
 The ticket for this feature is
index 9d9c821..4f343d7 100644 (file)
@@ -32,8 +32,8 @@ Leon Brocard, Dave Mitchell, Jesse Vincent, Ricardo Signes, Steve Hay,
 Matt S Trout, David Golden, Florian Ragwitz, Tatsuhiko Miyagawa,
 Chris C<BinGOs> Williams, Zefram, Ævar Arnfjörð Bjarmason, Stevan
 Little, Dave Rolsky, Max Maischein, Abigail, Jesse Luehrs, Tony Cook,
-Dominic Hargreaves, Aaron Crane, Aristotle Pagaltzis, Matthew Horsfall
-and Peter Martini.
+Dominic Hargreaves, Aaron Crane, Aristotle Pagaltzis, Matthew Horsfall,
+Peter Martini, and Sawyer X.
 
 =head2 PUMPKIN?
 
@@ -538,6 +538,8 @@ the strings?).
  Steve     5.20.1-RC1   2014-Aug-25
  Steve     5.20.1-RC2   2014-Sep-07
  Steve     5.20.1       2014-Sep-14
+ Steve     5.20.2-RC1   2015-Jan-31
+ Steve     5.20.2       2015-Feb-14
 
  Ricardo   5.21.0       2014-May-27     The 5.21 development track
  Matthew H 5.21.1       2014-Jun-20
@@ -548,6 +550,7 @@ the strings?).
  BinGOs    5.21.6       2014-Nov-20
  Max M     5.21.7       2014-Dec-20
  Matthew H 5.21.8       2015-Jan-20
+ Sawyer X  5.21.9       2015-Feb-20
 
 =head2 SELECTED RELEASE SIZES
 
index a44ffbc..fdf524f 100644 (file)
@@ -32,7 +32,7 @@ L<perlunitut> for an introduction to that) in part to address these
 design deficiencies, and nowadays, there is a series of "UTF-8
 locales", based on Unicode.  These are locales whose character set is
 Unicode, encoded in UTF-8.  Starting in v5.20, Perl fully supports
-UTF-8 locales, except for sorting and string comparisions.  (Use
+UTF-8 locales, except for sorting and string comparisons.  (Use
 L<Unicode::Collate> for these.)  Perl continues to support the old
 non UTF-8 locales as well.
 
index d6111d0..6f0cb96 100644 (file)
@@ -58,6 +58,10 @@ Do one thing and do it well
 
 Choose an appropriate name
 
+=item *
+
+Get feedback before publishing
+
 =back
 
 =head2 The API
@@ -240,11 +244,18 @@ hierarchy already exists under which you could place your module.
 
 =back
 
-You should contact modules@perl.org to ask them about your module name
-before publishing your module.  You should also try to ask people who 
-are already familiar with the module's application domain and the CPAN
-naming system.  Authors of similar modules, or modules with similar
-names, may be a good place to start.
+=head2 Get feedback before publishing
+
+If you have never uploaded a module to CPAN before (and even if you have),
+you are strongly encouraged to get feedback on L<PrePAN|http://prepan.org>.
+PrePAN is a site dedicated to discussing ideas for CPAN modules with other
+Perl developers and is a great resource for new (and experienced) Perl
+developers.
+
+You should also try to get feedback from people who are already familiar
+with the module's application domain and the CPAN naming system.  Authors
+of similar modules, or modules with similar names, may be a good place to
+start, as are community sites like L<Perl Monks|http://www.perlmonks.org>.
 
 =head1 DESIGNING AND WRITING YOUR MODULE
 
index dc546fb..e5d15dd 100644 (file)
@@ -246,6 +246,13 @@ characters will be in either 32- or 64-bit complements, depending on your
 architecture.  So for example, C<~"\x{3B1}"> is C<"\x{FFFF_FC4E}"> on
 32-bit machines and C<"\x{FFFF_FFFF_FFFF_FC4E}"> on 64-bit machines.
 
+If the experimental "bitwise" feature is enabled via C<use feature
+'bitwise'>, then unary "~" always treats its argument as a number, and an
+alternate form of the operator, "~.", always treats its argument as a
+string.  So C<~0> and C<~"0"> will both give 2**32-1 on 32-bit platforms,
+whereas C<~.0> and C<~."0"> will both yield C<"\xff">.  This feature
+produces a warning unless you use C<no warnings 'experimental::bitwise'>.
+
 Unary "+" has no effect whatsoever, even on strings.  It is useful
 syntactically for separating a function name from a parenthesized expression
 that would otherwise be interpreted as the complete list of function
@@ -518,6 +525,11 @@ encodings.  The standard L<Unicode::Collate> and
 L<Unicode::Collate::Locale> modules offer much more powerful solutions to
 collation issues.
 
+For case-insensitive comparisions, look at the L<perlfunc/fc> case-folding
+function, available in Perl v5.16 or later:
+
+    if ( fc($x) eq fc($y) ) { ... }
+
 =head2 Smartmatch Operator
 
 First available in Perl 5.10.1 (the 5.10.0 version behaved differently),
@@ -824,6 +836,11 @@ the parentheses are essential in a test like
 
     print "Even\n" if ($x & 1) == 0;
 
+If the experimental "bitwise" feature is enabled via C<use feature
+'bitwise'>, then this operator always treats its operand as numbers.  This
+feature produces a warning unless you use C<no warnings
+'experimental::bitwise'>.
+
 =head2 Bitwise Or and Exclusive Or
 X<operator, bitwise, or> X<bitwise or> X<|> X<operator, bitwise, xor>
 X<bitwise xor> X<^>
@@ -842,6 +859,11 @@ for example the brackets are essential in a test like
 
     print "false\n" if (8 | 2) != 10;
 
+If the experimental "bitwise" feature is enabled via C<use feature
+'bitwise'>, then this operator always treats its operand as numbers.  This
+feature produces a warning unless you use C<no warnings
+'experimental::bitwise'>.
+
 =head2 C-style Logical And
 X<&&> X<logical and> X<operator, logical, and>
 
@@ -1114,7 +1136,7 @@ That should probably be written more simply as:
 =head2 Assignment Operators
 X<assignment> X<operator, assignment> X<=> X<**=> X<+=> X<*=> X<&=>
 X<<< <<= >>> X<&&=> X<-=> X</=> X<|=> X<<< >>= >>> X<||=> X<//=> X<.=>
-X<%=> X<^=> X<x=>
+X<%=> X<^=> X<x=> X<&.=> X<|.=> X<^.=>
 
 "=" is the ordinary assignment operator.
 
@@ -1130,9 +1152,9 @@ although without duplicating any side effects that dereferencing the lvalue
 might trigger, such as from tie().  Other assignment operators work similarly.
 The following are recognized:
 
-    **=    +=    *=    &=    <<=    &&=
-           -=    /=    |=    >>=    ||=
-           .=    %=    ^=           //=
+    **=    +=    *=    &=    &.=    <<=    &&=
+           -=    /=    |=    |.=    >>=    ||=
+           .=    %=    ^=    ^.=           //=
                  x=
 
 Although these are grouped by family, they all have the precedence
@@ -1168,6 +1190,9 @@ lvalues assigned to, and a list assignment in scalar context returns
 the number of elements produced by the expression on the right hand
 side of the assignment.
 
+The three dotted bitwise assignment operators (C<&.= |.= ^.=>) are new in
+Perl 5.22 and experimental.  See L</Bitwise String Operators>.
+
 =head2 Comma Operator
 X<comma> X<operator, comma> X<,>
 
@@ -2004,12 +2029,12 @@ to "utf8" in a pod file:
     s//utf8/ if m? ^ =encoding \h+ \K latin1 ?x;
 
 The match-once behavior is controlled by the match delimiter being
-C<?>; with any other delimiter this is the normal C<m//> operator.  
+C<?>; with any other delimiter this is the normal C<m//> operator.
 
-For historical reasons, the leading C<m> in C<m?PATTERN?> is optional,
-but the resulting C<?PATTERN?> syntax is deprecated, will warn on
-usage and might be removed from a future stable release of Perl (without
-further notice!).
+In the past, the leading C<m> in C<m?PATTERN?> was optional, but omitting it
+would produce a deprecation warning.  As of v5.22.0, omitting it produces a
+syntax error.  If you encounter this construct in older code, you can just add
+C<m>.
 
 =item s/PATTERN/REPLACEMENT/msixpodualngcer
 X<substitute> X<substitution> X<replace> X<regexp, replace>
@@ -3142,7 +3167,7 @@ context, so you can for example safely do
     1 while foo();
 
 =head2 Bitwise String Operators
-X<operator, bitwise, string>
+X<operator, bitwise, string> X<&.> X<|.> X<^.> X<~.>
 
 Bitstrings of any size may be manipulated by the bitwise operators
 (C<~ | & ^>).
@@ -3173,6 +3198,31 @@ operation you intend by using C<""> or C<0+>, as in the examples below.
     $baz = 0+$foo & 0+$bar;    # both ops explicitly numeric
     $biz = "$foo" ^ "$bar";    # both ops explicitly stringy
 
+This somewhat unpredictable behavior can be avoided with the experimental
+"bitwise" feature, new in Perl 5.22.  You can enable it via C<use feature
+'bitwise'>.  By default, it will warn unless the "experimental::bitwise"
+warnings category has been disabled.  (C<use experimental 'bitwise'> will
+enable the feature and disable the warning.)  Under this feature, the four
+standard bitwise operators (C<~ | & ^>) are always numeric.  Adding a dot
+after each operator (C<~. |. &. ^.>) forces it to treat its operands as
+strings:
+
+    use experimental "bitwise";
+    $foo =  150  |  105;       # yields 255  (0x96 | 0x69 is 0xFF)
+    $foo = '150' |  105;       # yields 255
+    $foo =  150  | '105';      # yields 255
+    $foo = '150' | '105';      # yields 255
+    $foo =  150  |. 105;       # yields string '155' (under ASCII)
+    $foo = '150' |. 105;       # yields string '155'
+    $foo =  150  |.'105';      # yields string '155'
+    $foo = '150' |.'105';      # yields string '155'
+
+    $baz = $foo &  $bar;       # both operands numeric
+    $biz = $foo ^. $bar;       # both operands stringy
+
+The assignment variants of these operators (C<&= |= ^= &.= |.= ^.=>)
+behave likewise under the feature.
+
 See L<perlfunc/vec> for information on how to manipulate individual bits
 in a bit vector.
 
index 3bb10e3..62443d6 100644 (file)
@@ -1874,9 +1874,6 @@ Not implemented. (Android, Win32, VMS, S<Plan 9>, S<RISC OS>, VOS)
 
 open to C<|-> and C<-|> are unsupported. (Win32, S<RISC OS>)
 
-List-form pipe opens may fall back to the shell if the first spawn()
-fails. (Win32)
-
 Opening a process does not automatically flush output handles on some
 platforms.  (SunOS, Solaris, HP-UX)
 
index 247632b..90858b1 100644 (file)
@@ -269,8 +269,8 @@ will match "foo" using the locale's rules for case-insensitive matching,
 but the C</l> does not affect how the C<\U> operates.  Most likely you
 want both of them to use locale rules.  To do this, instead compile the
 regular expression within the scope of C<use locale>.  This both
-implicitly adds the C</l> and applies locale rules to the C<\U>.   The
-lesson is to C<use locale> and not C</l> explicitly.
+implicitly adds the C</l>, and applies locale rules to the C<\U>.   The
+lesson is to C<use locale>, and not C</l> explicitly.
 
 Similarly, it would be better to use C<use feature 'unicode_strings'>
 instead of,
@@ -384,10 +384,14 @@ the pattern uses a Unicode name (C<\N{...}>);  or
 
 =item 5
 
-the pattern uses a Unicode property (C<\p{...}>); or
+the pattern uses a Unicode property (C<\p{...}> or C<\P{...}>); or
 
 =item 6
 
+the pattern uses a Unicode break (C<\b{...}> or C<\B{...}>); or
+
+=item 7
+
 the pattern uses L</C<(?[ ])>>
 
 =back
@@ -770,6 +774,8 @@ X<regexp, zero-width assertion>
 X<regular expression, zero-width assertion>
 X<\b> X<\B> X<\A> X<\Z> X<\z> X<\G>
 
+    \b{} Match at Unicode boundary of specified type
+    \B{} Match where corresponding \b{} doesn't match
     \b  Match a word boundary
     \B  Match except at a word boundary
     \A  Match only at beginning of string
@@ -778,6 +784,12 @@ X<\b> X<\B> X<\A> X<\Z> X<\z> X<\G>
     \G  Match only at pos() (e.g. at the end-of-match position
         of prior m//g)
 
+A Unicode boundary (C<\b{}>), available starting in v5.22, is a spot
+between two characters, or before the first character in the string, or
+after the final character in the string where certain criteria defined
+by Unicode are met.  See L<perlrebackslash/\b{}, \b, \B{}, \B> for
+details.
+
 A word boundary (C<\b>) is a spot between two characters
 that has a C<\w> on one side of it and a C<\W> on the other side
 of it (in either order), counting the imaginary characters off the
index 230e76d..876d874 100644 (file)
@@ -66,8 +66,8 @@ as C<Not in [].>
  \1                Absolute backreference.  Not in [].
  \a                Alarm or bell.
  \A                Beginning of string.  Not in [].
- \b                Word/non-word boundary. (Backspace in []).
- \B                Not a word/non-word boundary.  Not in [].
+ \b{}, \b          Boundary. (\b is a backspace in []).
+ \B{}, \B          Not a boundary.
  \cX               Control-X.
  \C                Single octet, even under UTF-8.  Not in [].
                    (Deprecated)
@@ -134,7 +134,8 @@ description.  (For EBCDIC platforms, see L<perlebcdic/OPERATOR DIFFERENCES>.)
 =item [1]
 
 C<\b> is the backspace character only inside a character class. Outside a
-character class, C<\b> is a word/non-word boundary.
+character class, C<\b> alone is a word-character/non-word-character
+boundary, and C<\b{}> is some other type of boundary.
 
 =item [2]
 
@@ -525,10 +526,22 @@ or the beginning of that string if there was no previous match.
 
 Mnemonic: I<G>lobal.
 
-=item \b, \B
+=item \b{}, \b, \B{}, \B
 
-C<\b> matches at any place between a word and a non-word character; C<\B>
-matches at any place between characters where C<\b> doesn't match. C<\b>
+C<\b{...}>, available starting in v5.22, matches a boundary (between two
+characters, or before the first character of the string, or after the
+final character of the string) based on the Unicode rules for the
+boundary type specified inside the braces.  The currently known boundary
+types are given a few paragraphs below.  C<\B{...}> matches at any place
+between characters where C<\b{...}> of the same type doesn't match.
+
+C<\b> when not immediately followed by a C<"{"> matches at any place
+between a word (something matched by C<\w>) and a non-word character
+(C<\W>); C<\B> when not immediately followed by a C<"{"> matches at any
+place between characters where C<\b> doesn't match.  To get better
+word matching of natural language text, see L<\b{wb}> below.
+
+C<\b>
 and C<\B> assume there's a non-word character before the beginning and after
 the end of the source string; so C<\b> will match at the beginning (or end)
 of the source string if the source string begins (or ends) with a word
@@ -537,13 +550,45 @@ character. Otherwise, C<\B> will match.
 Do not use something like C<\b=head\d\b> and expect it to match the
 beginning of a line.  It can't, because for there to be a boundary before
 the non-word "=", there must be a word character immediately previous.  
-All boundary determinations look for word characters alone, not for
-non-words characters nor for string ends.  It may help to understand how
+All plain C<\b> and C<\B> boundary determinations look for word
+characters alone, not for
+non-word characters nor for string ends.  It may help to understand how
 <\b> and <\B> work by equating them as follows:
 
     \b really means    (?:(?<=\w)(?!\w)|(?<!\w)(?=\w))
     \B really means    (?:(?<=\w)(?=\w)|(?<!\w)(?!\w))
 
+In contrast, C<\b{...}> may or may not match at the beginning and end of
+the line depending on the boundary type (and C<\B{...}> never does).
+The boundary types currently available are:
+
+=over
+
+=item C<\b{gcb}> or C<\b{g}>
+
+This matches a Unicode "Grapheme Cluster Boundary".  (Actually Perl
+always uses the improved "extended" grapheme cluster").  These are
+explained below under L</C<\X>>.  In fact, C<\X> is another way to get
+the same functionality.  It is equivalent to C</.+?\b{gcb}/>.  Use
+whichever is most convenient for your situation.
+
+=item C<\b{sb}>
+
+This matches a Unicode "Sentence Boundary".  This is an aid to parsing
+natural language sentences.  It gives good, but imperfect results.  For
+example, it thinks that "Mr. Smith" is two sentences.  More details are
+at L<http://www.unicode.org/reports/tr29/>.
+
+=item C<\b{wb}>
+
+This matches a Unicode "Word Boundary".  This gives better (though not
+perfect) results for natural language processing than plain C<\b>
+(without braces) does.  For example, it understands that apostrophes can
+be in the middle of words.   More details are at
+L<http://www.unicode.org/reports/tr29/>.
+
+=back
+
 Mnemonic: I<b>oundary.
 
 =back
@@ -567,6 +612,10 @@ Mnemonic: I<b>oundary.
       print $1;           # Prints 'cat'
   }
 
+  print join "\n", "I don't care" =~ m/ ( .+? \b{wb} ) /xg;
+ prints
+  I, ,don't, ,care
+
 =head2 Misc
 
 Here we document the backslash sequences that don't fall in one of the
@@ -650,6 +699,8 @@ were a single character.
 The match is greedy and non-backtracking, so that the cluster is never
 broken up into smaller components.
 
+See also L<C<\b{gcb}>|/\b{}, \b, \B{}, \B>.
+
 Mnemonic: eI<X>tended Unicode character.
 
 =back
index 4421911..0d00a39 100644 (file)
@@ -566,12 +566,12 @@ escaping.
 Examples:
 
  "+"   =~ /[+?*]/     #  Match, "+" in a character class is not special.
- "\cH" =~ /[\b]/      #  Match, \b inside in a character class.
+ "\cH" =~ /[\b]/      #  Match, \b inside in a character class
                       #  is equivalent to a backspace.
- "]"   =~ /[][]/      #  Match, as the character class contains.
+ "]"   =~ /[][]/      #  Match, as the character class contains
                       #  both [ and ].
  "[]"  =~ /[[]]/      #  Match, the pattern contains a character class
-                      #  containing just ], and the character class is
+                      #  containing just [, and the character class is
                       #  followed by a ].
 
 =head3 Character Ranges
@@ -611,7 +611,7 @@ Examples:
  [\N{APOSTROPHE}-\N{QUESTION MARK}]
              #  Matches any of the characters  '()*+,-./0123456789:;<=>?
              #  even on an EBCDIC platform.
- [\N{U+27}-\N{U+3F}] # Same. (U+27 is "'", and U+3F is "?"
+ [\N{U+27}-\N{U+3F}] # Same. (U+27 is "'", and U+3F is "?")
 
 As the final two examples above show, you can achieve portablity to
 non-ASCII platforms by using the C<\N{...}> form for the range
index 30c3238..d72bd2b 100644 (file)
@@ -233,6 +233,11 @@ character and a non-word character C<\w\W> or C<\W\w>:
 In the last example, the end of the string is considered a word
 boundary.
 
+For natural language processing (so that, for example, apostrophes are
+included in words), use instead C<\b{wb}>
+
+    "don't" =~ / .+? \b{wb} /x;  # matches the whole string
+
 =head2 Matching this or that
 
 We can match different character strings with the B<alternation>
index 7ae8f6c..bc4bef7 100644 (file)
@@ -201,6 +201,8 @@ All are zero-width assertions.
 
    ^  Match string start (or line, if /m is used)
    $  Match string end (or line, if /m is used) or before newline
+   \b{} Match boundary of type specified within the braces
+   \B{} Match wherever \b{} doesn't match
    \b Match word boundary (between \w and \W)
    \B Match except at word boundary (between \w and \w or \W and \W)
    \A Match string start (regardless of /m)
index c5d8891..cb399ab 100644 (file)
@@ -459,6 +459,11 @@ character C<\w\W> or C<\W\w>:
 Note in the last example, the end of the string is considered a word
 boundary.
 
+For natural language processing (so that, for example, apostrophes are
+included in words), use instead C<\b{wb}>
+
+    "don't" =~ / .+? \b{wb} /x;  # matches the whole string
+
 You might wonder why C<'.'> matches everything but C<"\n"> - why not
 every character? The reason is that often one is matching against
 lines and would like to ignore the newline characters.  For instance,
index 0964a42..acf2702 100644 (file)
@@ -925,13 +925,13 @@ of warnings; see L<warnings>.
 =item B<-W>
 X<-W>
 
-Enables "all" warnings regardless of C<no warnings> or C<$^W>.
+Enables all warnings regardless of C<no warnings> or C<$^W>.
 See L<warnings>.
 
 =item B<-X>
 X<-X>
 
-Disables "all" warnings regardless of C<use warnings> or C<$^W>.
+Disables all warnings regardless of C<use warnings> or C<$^W>.
 See L<warnings>.
 
 =item B<-x>
index 28a6866..82a48f5 100644 (file)
@@ -158,10 +158,6 @@ The old home for the module tests, you shouldn't put anything new in
 here. There are still some bits and pieces hanging around in here that
 need to be moved. Perhaps you could move them?  Thanks!
 
-=item * F<t/x2p>
-
-A test suite for the s2p converter.
-
 =back
 
 =head2 Documentation
index 0a173a1..f057b96 100644 (file)
@@ -318,8 +318,8 @@ disabled.
 
 The signature is part of a subroutine's body.  Normally the body of a
 subroutine is simply a braced block of code.  When using a signature,
-the signature is a parenthesised list that goes immediately before
-the braced block.  The signature declares lexical variables that are
+the signature is a parenthesised list that goes immediately after
+the subroutine name.  The signature declares lexical variables that are
 in scope for the block.  When the subroutine is called, the signature
 takes control first.  It populates the signature variables from the
 list of arguments that were passed.  If the argument list doesn't meet
index 0482d92..f74f4f7 100644 (file)
@@ -1093,14 +1093,15 @@ Level 2 - Extended Unicode Support
 
  RL2.1   Canonical Equivalents           - MISSING       [10][11]
  RL2.2   Default Grapheme Clusters       - MISSING       [12]
- RL2.3   Default Word Boundaries         - MISSING       [14]
+ RL2.3   Default Word Boundaries         - DONE          [14]
  RL2.4   Default Loose Matches           - MISSING       [15]
  RL2.5   Name Properties                 - DONE
  RL2.6   Wildcard Properties             - MISSING
 
  [10] see UAX#15 "Unicode Normalization Forms"
  [11] have Unicode::Normalize but not integrated to regexes
- [12] have \X but we don't have a "Grapheme Cluster Mode"
+ [12] have \X and \b{gcb} but we don't have a "Grapheme Cluster
+      Mode"
  [14] see UAX#29, Word Boundaries
  [15] This is covered in Chapter 3.13 (in Unicode 6.0)
 
@@ -1575,8 +1576,9 @@ regular expressions outside the scope.
 
 =item *
 
-Matching any of several properties in regular expressions, namely C<\b>,
-C<\B>, C<\s>, C<\S>, C<\w>, C<\W>, and all the Posix character classes
+Matching any of several properties in regular expressions, namely
+C<\b> (without braces), C<\B> (without braces), C<\s>, C<\S>, C<\w>,
+C<\W>, and all the Posix character classes
 I<except> C<[[:ascii:]]>.
 Starting in Perl 5.14.0, regular expressions compiled within
 the scope of C<unicode_strings> use character semantics
index 44a4571..3e5496e 100644 (file)
@@ -33,7 +33,8 @@ This I<does> make even Unix programmers C<binmode> your binary streams,
 or open them with C<:raw>, but that's the only way to get at them
 portably anyway.
 
-B<WARNING>: C<use autoload> and C<use open> do not get along with each other.
+B<WARNING>: C<use autodie> (pre 2.26) and C<use open> do not get along with each
+other.
 
 =head2 ℞ 1: Generic Unicode-savvy filter
 
@@ -439,7 +440,7 @@ convert such strings manually.
  use Unicode::UCD qw(num);
  my $str = "got Ⅻ and ४५६७ and ⅞ and here";
  my @nums = ();
- while (/$str =~ (\d+|\N)/g) {  # not just ASCII!
+ while ($str =~ /(\d+|\N)/g) {  # not just ASCII!
     push @nums, num($1);
  }
  say "@nums";   #     12      4567      0.875
@@ -637,7 +638,7 @@ won’t fit into a byte.  Here’s how to manually manage the translation:
     # assume $uni_key holds a normal Perl string (abstract Unicode)
     my $enc_key   = encode("UTF-8", $uni_key, 1);
     my $enc_value = $dbhash{$enc_key};
-    my $uni_value = decode("UTF-8", $enc_key, 1);
+    my $uni_value = decode("UTF-8", $enc_value, 1);
 
 =head2 ℞ 43: Unicode text in DBM hashes, the easy way
 
index 8561eb8..e14d844 100644 (file)
@@ -657,30 +657,35 @@ and B<-C> filetests are based on this value.
 X<$^V> X<$PERL_VERSION>
 
 The revision, version, and subversion of the Perl interpreter,
-represented as a C<version> object.
+represented as a L<version> object.
 
 This variable first appeared in perl v5.6.0; earlier versions of perl
 will see an undefined value.  Before perl v5.10.0 C<$^V> was represented
-as a v-string.
+as a v-string rather than a L<version> object.
 
 C<$^V> can be used to determine whether the Perl interpreter executing
 a script is in the right range of versions.  For example:
 
     warn "Hashes not randomized!\n" if !$^V or $^V lt v5.8.1
 
-To convert C<$^V> into its string representation use C<sprintf()>'s
-C<"%vd"> conversion:
+While version objects overload stringification, to portably convert
+C<$^V> into its string representation, use C<sprintf()>'s C<"%vd">
+conversion, which works for both v-strings or version objects:
 
     printf "version is v%vd\n", $^V;  # Perl's version
 
 See the documentation of C<use VERSION> and C<require VERSION>
 for a convenient way to fail if the running Perl interpreter is too old.
 
-See also C<$]> for an older representation of the Perl version.
+See also C<$]> for a decimal representation of the Perl version.
 
-This variable was added in Perl v5.6.0.
+The main advantage of C<$^V> over C<$]> is that, for Perl v5.10.0 or
+later, it overloads operators, allowing easy comparison against other
+version representations (e.g. decimal, literal v-string, "v1.2.3", or
+objects).  The disadvantage is that prior to v5.10.0, it was only a
+literal v-string, which can't be easily printed or compared.
 
-Mnemonic: use ^V for Version Control.
+Mnemonic: use ^V for a version object.
 
 =item ${^WIN32_SLOPPY_STAT}
 X<${^WIN32_SLOPPY_STAT}> X<sitecustomize> X<sitecustomize.pl>
@@ -2273,21 +2278,33 @@ Deprecated in Perl v5.12.0.
 =item $]
 X<$]>
 
-See L</$^V> for a more modern representation of the Perl version that allows
-accurate string comparisons.
+The revision, version, and subversion of the Perl interpreter, represented
+as a decimal of the form 5.XXXYYY, where XXX is the version / 1e3 and YYY
+is the subversion / 1e6.  For example, Perl v5.10.1 would be "5.010001".
 
-The version + patchlevel / 1000 of the Perl interpreter.  This variable
-can be used to determine whether the Perl interpreter executing a
-script is in the right range of versions:
+This variable can be used to determine whether the Perl interpreter
+executing a script is in the right range of versions:
 
     warn "No PerlIO!\n" if $] lt '5.008';
 
-The floating point representation can sometimes lead to inaccurate
-numeric comparisons, so string comparisons are recommended.
+When comparing C<$]>, string comparison operators are B<highly
+recommended>.  The inherent limitations of binary floating point
+representation can sometimes lead to incorrect comparisons for some
+numbers on some architectures.
 
 See also the documentation of C<use VERSION> and C<require VERSION>
 for a convenient way to fail if the running Perl interpreter is too old.
 
+See L</$^V> for a representation of the Perl version as a L<version>
+object, which allows more flexible string comparisons.
+
+The main advantage of C<$]> over C<$^V> is that it works the same on any
+version of Perl.  The disadvantages are that it can't easily be compared
+to versions in other formats (e.g. literal v-strings, "v1.2.3" or
+version objects) and numeric comparisons can occasionally fail; it's good
+for string literal version checks and bad for comparing to a variable
+that hasn't been sanity-checked.
+
 Mnemonic: Is this version of perl in the right bracket?
 
 =back
diff --git a/pp.c b/pp.c
index c4c4819..c9d9e1a 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -2224,6 +2224,34 @@ PP(pp_bit_and)
     }
 }
 
+PP(pp_nbit_and)
+{
+    dSP;
+    tryAMAGICbin_MG(band_amg, AMGf_assign|AMGf_numarg);
+    {
+       dATARGET; dPOPTOPssrl;
+       if (PL_op->op_private & HINT_INTEGER) {
+         const IV i = SvIV_nomg(left) & SvIV_nomg(right);
+         SETi(i);
+       }
+       else {
+         const UV u = SvUV_nomg(left) & SvUV_nomg(right);
+         SETu(u);
+       }
+    }
+    RETURN;
+}
+
+PP(pp_sbit_and)
+{
+    dSP;
+    tryAMAGICbin_MG(sband_amg, AMGf_assign);
+    {
+       dATARGET; dPOPTOPssrl;
+       do_vop(OP_BIT_AND, TARG, left, right);
+       RETSETTARG;
+    }
+}
 
 /* also used for: pp_bit_xor() */
 
@@ -2261,6 +2289,50 @@ PP(pp_bit_or)
     }
 }
 
+/* also used for: pp_nbit_xor() */
+
+PP(pp_nbit_or)
+{
+    dSP;
+    const int op_type = PL_op->op_type;
+
+    tryAMAGICbin_MG((op_type == OP_NBIT_OR ? bor_amg : bxor_amg),
+                   AMGf_assign|AMGf_numarg);
+    {
+       dATARGET; dPOPTOPssrl;
+       if (PL_op->op_private & HINT_INTEGER) {
+         const IV l = (USE_LEFT(left) ? SvIV_nomg(left) : 0);
+         const IV r = SvIV_nomg(right);
+         const IV result = op_type == OP_NBIT_OR ? (l | r) : (l ^ r);
+         SETi(result);
+       }
+       else {
+         const UV l = (USE_LEFT(left) ? SvUV_nomg(left) : 0);
+         const UV r = SvUV_nomg(right);
+         const UV result = op_type == OP_NBIT_OR ? (l | r) : (l ^ r);
+         SETu(result);
+       }
+    }
+    RETURN;
+}
+
+/* also used for: pp_sbit_xor() */
+
+PP(pp_sbit_or)
+{
+    dSP;
+    const int op_type = PL_op->op_type;
+
+    tryAMAGICbin_MG((op_type == OP_SBIT_OR ? sbor_amg : sbxor_amg),
+                   AMGf_assign);
+    {
+       dATARGET; dPOPTOPssrl;
+       do_vop(op_type == OP_SBIT_OR ? OP_BIT_OR : OP_BIT_XOR, TARG, left,
+              right);
+       RETSETTARG;
+    }
+}
+
 PERL_STATIC_INLINE bool
 S_negate_string(pTHX)
 {
@@ -2336,23 +2408,9 @@ PP(pp_not)
     return NORMAL;
 }
 
-PP(pp_complement)
+static void
+S_scomplement(pTHX_ SV *targ, SV *sv)
 {
-    dSP; dTARGET;
-    tryAMAGICun_MG(compl_amg, AMGf_numeric);
-    {
-      dTOPss;
-      if (SvNIOKp(sv)) {
-       if (PL_op->op_private & HINT_INTEGER) {
-         const IV i = ~SvIV_nomg(sv);
-         SETi(i);
-       }
-       else {
-         const UV u = ~SvUV_nomg(sv);
-         SETu(u);
-       }
-      }
-      else {
        U8 *tmps;
        I32 anum;
        STRLEN len;
@@ -2413,8 +2471,7 @@ PP(pp_complement)
              sv_usepvn_flags(TARG, (char*)result, nchar, SV_HAS_TRAILING_NUL);
              SvUTF8_off(TARG);
          }
-         SETTARG;
-         return NORMAL;
+         return;
        }
 #ifdef LIBERAL
        {
@@ -2429,12 +2486,62 @@ PP(pp_complement)
 #endif
        for ( ; anum > 0; anum--, tmps++)
            *tmps = ~*tmps;
+}
+
+PP(pp_complement)
+{
+    dSP; dTARGET;
+    tryAMAGICun_MG(compl_amg, AMGf_numeric);
+    {
+      dTOPss;
+      if (SvNIOKp(sv)) {
+       if (PL_op->op_private & HINT_INTEGER) {
+         const IV i = ~SvIV_nomg(sv);
+         SETi(i);
+       }
+       else {
+         const UV u = ~SvUV_nomg(sv);
+         SETu(u);
+       }
+      }
+      else {
+       S_scomplement(aTHX_ TARG, sv);
        SETTARG;
       }
       return NORMAL;
     }
 }
 
+PP(pp_ncomplement)
+{
+    dSP;
+    tryAMAGICun_MG(compl_amg, AMGf_numeric|AMGf_numarg);
+    {
+       dTARGET; dTOPss;
+       if (PL_op->op_private & HINT_INTEGER) {
+         const IV i = ~SvIV_nomg(sv);
+         SETi(i);
+       }
+       else {
+         const UV u = ~SvUV_nomg(sv);
+         SETu(u);
+       }
+    }
+    return NORMAL;
+}
+
+PP(pp_scomplement)
+{
+    dSP;
+    tryAMAGICun_MG(scompl_amg, AMGf_numeric);
+    {
+       dTARGET; dTOPss;
+       S_scomplement(aTHX_ TARG, sv);
+       SETTARG;
+       return NORMAL;
+    }
+}
+
 /* integer versions of some of the above */
 
 PP(pp_i_multiply)
@@ -3211,7 +3318,7 @@ PP(pp_substr)
     }
     RETURN;
 
-bound_fail:
+  bound_fail:
     if (repl)
        Perl_croak(aTHX_ "substr outside of string");
     Perl_ck_warner(aTHX_ packWARN(WARN_SUBSTR), "substr outside of string");
diff --git a/pp.h b/pp.h
index b8e482b..2636dbf 100644 (file)
--- a/pp.h
+++ b/pp.h
@@ -376,6 +376,7 @@ Does not use C<TARG>.  See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
 #define RETSETYES      RETURNX(SETs(&PL_sv_yes))
 #define RETSETNO       RETURNX(SETs(&PL_sv_no))
 #define RETSETUNDEF    RETURNX(SETs(&PL_sv_undef))
+#define RETSETTARG     STMT_START { SETTARG; RETURN; } STMT_END
 
 #define ARGTARG                PL_op->op_targ
 
@@ -404,6 +405,7 @@ Does not use C<TARG>.  See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
 #define AMGf_numeric   0x10    /* for Perl_try_amagic_bin */
 #define AMGf_set       0x20    /* for Perl_try_amagic_bin */
 #define AMGf_want_list 0x40
+#define AMGf_numarg    0x80
 
 
 /* do SvGETMAGIC on the stack args before checking for overload */
index c76347b..f7cb216 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -3121,8 +3121,7 @@ PP(pp_goto)
        }
     }
 
-    else {
-        assert(do_dump);
+    if (do_dump) {
 #ifdef VMS
        if (!retop) retop = PL_main_start;
 #endif
@@ -3670,7 +3669,7 @@ S_doopen_pm(pTHX_ SV *name)
 #endif /* !PERL_DISABLE_PMC */
 
 /* require doesn't search for absolute names, or when the name is
-   explicity relative the current directory */
+   explicitly relative the current directory */
 PERL_STATIC_INLINE bool
 S_path_is_searchable(const char *name)
 {
@@ -5433,7 +5432,7 @@ S_run_user_filter(pTHX_ int idx, SV *buf_sv, int maxlen)
     umaxlen = maxlen;
 
     /* I was having segfault trouble under Linux 2.2.5 after a
-       parse error occured.  (Had to hack around it with a test
+       parse error occurred.  (Had to hack around it with a test
        for PL_parser->error_count == 0.)  Solaris doesn't segfault --
        not sure where the trouble is yet.  XXX */
 
index 4072ab1..7578811 100644 (file)
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -76,7 +76,8 @@ PP(pp_null)
     return NORMAL;
 }
 
-/* This is sometimes called directly by pp_coreargs and pp_grepstart. */
+/* This is sometimes called directly by pp_coreargs, pp_grepstart and
+   amagic_call. */
 PP(pp_pushmark)
 {
     PUSHMARK(PL_stack_sp);
@@ -1554,7 +1555,7 @@ PP(pp_match)
     }
     NOT_REACHED; /* NOTREACHED */
 
-nope:
+  nope:
     if (global && !(dynpm->op_pmflags & PMf_CONTINUE)) {
         if (!mg)
             mg = mg_find_mglob(TARG);
@@ -3096,7 +3097,7 @@ PP(pp_entersub)
        }
        /* should call AUTOLOAD now? */
        else {
-try_autoload:
+          try_autoload:
            if ((autogv = gv_autoload_pvn(GvSTASH(gv), GvNAME(gv), GvNAMELEN(gv),
                                   GvNAMEUTF8(gv) ? SVf_UTF8 : 0)))
            {
index 60462eb..2d1a208 100644 (file)
--- a/pp_pack.c
+++ b/pp_pack.c
@@ -142,7 +142,7 @@ typedef union {
 #  error "Unsupported byteorder"
         /* Need to add code here to re-instate mixed endian support.
            NEEDS_SWAP would need to hold a flag indicating which action to
-           take, and S_reverse_copy and the code in uni_to_bytes would need
+           take, and S_reverse_copy and the code in S_utf8_to_bytes would need
            logic adding to deal with any mixed-endian transformations needed.
         */
 #endif
@@ -151,7 +151,7 @@ typedef union {
 #define SHIFT_BYTES(utf8, s, strend, buf, len, datumtype, needs_swap)  \
 STMT_START {                                           \
     if (UNLIKELY(utf8)) {                               \
-        if (!uni_to_bytes(aTHX_ &s, strend,            \
+        if (!S_utf8_to_bytes(aTHX_ &s, strend,         \
          (char *) (buf), len, datumtype)) break;       \
     } else {                                           \
         if (UNLIKELY(needs_swap))                       \
@@ -216,16 +216,8 @@ S_mul128(pTHX_ SV *sv, U8 m)
 
 /* Explosives and implosives. */
 
-#if 'I' == 73 && 'J' == 74
-/* On an ASCII/ISO kind of system */
-#define ISUUCHAR(ch)    ((ch) >= ' ' && (ch) < 'a')
-#else
-/*
-  Some other sort of character set - use memchr() so we don't match
-  the null byte.
- */
-#define ISUUCHAR(ch)    (memchr(PL_uuemap, (ch), sizeof(PL_uuemap)-1) || (ch) == ' ')
-#endif
+#define ISUUCHAR(ch)    (NATIVE_TO_LATIN1(ch) >= NATIVE_TO_LATIN1(' ')  \
+                      && NATIVE_TO_LATIN1(ch) <  NATIVE_TO_LATIN1('a'))
 
 /* type modifiers */
 #define TYPE_IS_SHRIEKING      0x100
@@ -256,7 +248,7 @@ S_reverse_copy(const char *src, char *dest, STRLEN len)
 }
 
 STATIC U8
-uni_to_byte(pTHX_ const char **s, const char *end, I32 datumtype)
+utf8_to_byte(pTHX_ const char **s, const char *end, I32 datumtype)
 {
     STRLEN retlen;
     UV val = utf8n_to_uvchr((U8 *) *s, end-*s, &retlen,
@@ -278,11 +270,11 @@ uni_to_byte(pTHX_ const char **s, const char *end, I32 datumtype)
 }
 
 #define SHIFT_BYTE(utf8, s, strend, datumtype) ((utf8) ? \
-       uni_to_byte(aTHX_ &(s), (strend), (datumtype)) : \
+       utf8_to_byte(aTHX_ &(s), (strend), (datumtype)) : \
        *(U8 *)(s)++)
 
 STATIC bool
-uni_to_bytes(pTHX_ const char **s, const char *end, const char *buf, int buf_len, I32 datumtype)
+S_utf8_to_bytes(pTHX_ const char **s, const char *end, const char *buf, int buf_len, I32 datumtype)
 {
     UV val;
     STRLEN retlen;
@@ -334,24 +326,9 @@ uni_to_bytes(pTHX_ const char **s, const char *end, const char *buf, int buf_len
     return TRUE;
 }
 
-STATIC bool
-next_uni_uu(pTHX_ const char **s, const char *end, I32 *out)
-{
-    STRLEN retlen;
-    const UV val = utf8n_to_uvchr((U8 *) *s, end-*s, &retlen, UTF8_CHECK_ONLY);
-    if (val >= 0x100 || !ISUUCHAR(val) ||
-       retlen == (STRLEN) -1 || retlen == 0) {
-       *out = 0;
-       return FALSE;
-    }
-    *out = PL_uudmap[val] & 077;
-    *s += retlen;
-    return TRUE;
-}
-
 STATIC char *
-S_bytes_to_uni(const U8 *start, STRLEN len, char *dest, const bool needs_swap) {
-    PERL_ARGS_ASSERT_BYTES_TO_UNI;
+S_my_bytes_to_utf8(const U8 *start, STRLEN len, char *dest, const bool needs_swap) {
+    PERL_ARGS_ASSERT_MY_BYTES_TO_UTF8;
 
     if (UNLIKELY(needs_swap)) {
         const U8 *p = start + len;
@@ -371,7 +348,7 @@ S_bytes_to_uni(const U8 *start, STRLEN len, char *dest, const bool needs_swap) {
 #define PUSH_BYTES(utf8, cur, buf, len, needs_swap)             \
 STMT_START {                                                   \
     if (UNLIKELY(utf8))                                                \
-       (cur) = S_bytes_to_uni((U8 *) buf, len, (cur), needs_swap);       \
+       (cur) = my_bytes_to_utf8((U8 *) buf, len, (cur), needs_swap);       \
     else {                                                     \
         if (UNLIKELY(needs_swap))                               \
             S_reverse_copy((char *)(buf), cur, len);            \
@@ -409,7 +386,7 @@ STMT_START {                                        \
 STMT_START {                                   \
     if (utf8) {                                        \
        const U8 au8 = (byte);                  \
-       (s) = S_bytes_to_uni(&au8, 1, (s), 0);  \
+       (s) = my_bytes_to_utf8(&au8, 1, (s), 0);\
     } else *(U8 *)(s)++ = (byte);              \
 } STMT_END
 
@@ -1128,7 +1105,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
            if (checksum) {
                if (utf8)
                    while (len >= 8 && s < strend) {
-                       cuv += PL_bitcount[uni_to_byte(aTHX_ &s, strend, datumtype)];
+                       cuv += PL_bitcount[utf8_to_byte(aTHX_ &s, strend, datumtype)];
                        len -= 8;
                    }
                else
@@ -1163,7 +1140,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
                    if (len & 7) bits >>= 1;
                    else if (utf8) {
                        if (s >= strend) break;
-                       bits = uni_to_byte(aTHX_ &s, strend, datumtype);
+                       bits = utf8_to_byte(aTHX_ &s, strend, datumtype);
                    } else bits = *(U8 *) s++;
                    *str++ = bits & 1 ? '1' : '0';
                }
@@ -1174,7 +1151,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
                    if (len & 7) bits <<= 1;
                    else if (utf8) {
                        if (s >= strend) break;
-                       bits = uni_to_byte(aTHX_ &s, strend, datumtype);
+                       bits = utf8_to_byte(aTHX_ &s, strend, datumtype);
                    } else bits = *(U8 *) s++;
                    *str++ = bits & 0x80 ? '1' : '0';
                }
@@ -1202,7 +1179,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
                    if (len & 1) bits >>= 4;
                    else if (utf8) {
                        if (s >= strend) break;
-                       bits = uni_to_byte(aTHX_ &s, strend, datumtype);
+                       bits = utf8_to_byte(aTHX_ &s, strend, datumtype);
                    } else bits = * (U8 *) s++;
                    if (!checksum)
                        *str++ = PL_hexdigit[bits & 15];
@@ -1214,7 +1191,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
                    if (len & 1) bits <<= 4;
                    else if (utf8) {
                        if (s >= strend) break;
-                       bits = uni_to_byte(aTHX_ &s, strend, datumtype);
+                       bits = utf8_to_byte(aTHX_ &s, strend, datumtype);
                    } else bits = *(U8 *) s++;
                    if (!checksum)
                        *str++ = PL_hexdigit[(bits >> 4) & 15];
@@ -1312,11 +1289,11 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
                    STRLEN len;
                    /* Bug: warns about bad utf8 even if we are short on bytes
                       and will break out of the loop */
-                   if (!uni_to_bytes(aTHX_ &ptr, strend, (char *) result, 1,
+                   if (!S_utf8_to_bytes(aTHX_ &ptr, strend, (char *) result, 1,
                                      'U'))
                        break;
                    len = UTF8SKIP(result);
-                   if (!uni_to_bytes(aTHX_ &ptr, strend,
+                   if (!S_utf8_to_bytes(aTHX_ &ptr, strend,
                                      (char *) &result[1], len-1, 'U')) break;
                    auv = NATIVE_TO_UNI(utf8n_to_uvchr(result,
                                                        len,
@@ -1729,72 +1706,48 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
                sv = sv_2mortal(newSV(l));
                if (l) SvPOK_on(sv);
            }
-           if (utf8) {
-               while (next_uni_uu(aTHX_ &s, strend, &len)) {
-                   I32 a, b, c, d;
-                   char hunk[3];
-
-                   while (len > 0) {
-                       next_uni_uu(aTHX_ &s, strend, &a);
-                       next_uni_uu(aTHX_ &s, strend, &b);
-                       next_uni_uu(aTHX_ &s, strend, &c);
-                       next_uni_uu(aTHX_ &s, strend, &d);
-                       hunk[0] = (char)((a << 2) | (b >> 4));
-                       hunk[1] = (char)((b << 4) | (c >> 2));
-                       hunk[2] = (char)((c << 6) | d);
-                       if (!checksum)
-                           sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
-                       len -= 3;
-                   }
-                   if (s < strend) {
-                       if (*s == '\n') {
-                            s++;
-                        }
-                       else {
-                           /* possible checksum byte */
-                           const char *skip = s+UTF8SKIP(s);
-                           if (skip < strend && *skip == '\n')
-                                s = skip+1;
-                       }
-                   }
-               }
-           } else {
-               while (s < strend && *s > ' ' && ISUUCHAR(*s)) {
-                   I32 a, b, c, d;
-                   char hunk[3];
-
-                   len = PL_uudmap[*(U8*)s++] & 077;
-                   while (len > 0) {
-                       if (s < strend && ISUUCHAR(*s))
-                           a = PL_uudmap[*(U8*)s++] & 077;
-                       else
-                           a = 0;
-                       if (s < strend && ISUUCHAR(*s))
-                           b = PL_uudmap[*(U8*)s++] & 077;
-                       else
-                           b = 0;
-                       if (s < strend && ISUUCHAR(*s))
-                           c = PL_uudmap[*(U8*)s++] & 077;
-                       else
-                           c = 0;
-                       if (s < strend && ISUUCHAR(*s))
-                           d = PL_uudmap[*(U8*)s++] & 077;
-                       else
-                           d = 0;
-                       hunk[0] = (char)((a << 2) | (b >> 4));
-                       hunk[1] = (char)((b << 4) | (c >> 2));
-                       hunk[2] = (char)((c << 6) | d);
-                       if (!checksum)
-                           sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
-                       len -= 3;
-                   }
-                   if (*s == '\n')
-                       s++;
-                   else        /* possible checksum byte */
-                       if (s + 1 < strend && s[1] == '\n')
-                           s += 2;
-               }
-           }
+
+            /* Note that all legal uuencoded strings are ASCII printables, so
+             * have the same representation under UTF-8 vs not.  This means we
+             * can ignore UTF8ness on legal input.  For illegal we stop at the
+             * first failure, and don't report where/what that is, so again we
+             * can ignore UTF8ness */
+
+            while (s < strend && *s != ' ' && ISUUCHAR(*s)) {
+                I32 a, b, c, d;
+                char hunk[3];
+
+                len = PL_uudmap[*(U8*)s++] & 077;
+                while (len > 0) {
+                    if (s < strend && ISUUCHAR(*s))
+                        a = PL_uudmap[*(U8*)s++] & 077;
+                    else
+                        a = 0;
+                    if (s < strend && ISUUCHAR(*s))
+                        b = PL_uudmap[*(U8*)s++] & 077;
+                    else
+                        b = 0;
+                    if (s < strend && ISUUCHAR(*s))
+                        c = PL_uudmap[*(U8*)s++] & 077;
+                    else
+                        c = 0;
+                    if (s < strend && ISUUCHAR(*s))
+                        d = PL_uudmap[*(U8*)s++] & 077;
+                    else
+                        d = 0;
+                    hunk[0] = (char)((a << 2) | (b >> 4));
+                    hunk[1] = (char)((b << 4) | (c >> 2));
+                    hunk[2] = (char)((c << 6) | d);
+                    if (!checksum)
+                        sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
+                    len -= 3;
+                }
+                if (*s == '\n')
+                    s++;
+                else   /* possible checksum byte */
+                    if (s + 1 < strend && s[1] == '\n')
+                        s += 2;
+            }
            if (!checksum)
                XPUSHs(sv);
            break;
@@ -2141,7 +2094,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist )
        char *cur   = start + SvCUR(cat);
         bool needs_swap;
 
-#define NEXTFROM (lengthcode ? lengthcode : items-- > 0 ? *beglist++ : &PL_sv_no)
+#define NEXTFROM (lengthcode ? lengthcode : items > 0 ? (--items, *beglist++) : &PL_sv_no)
 #define PEEKFROM (lengthcode ? lengthcode : items > 0 ? *beglist : &PL_sv_no)
 
         switch (howlen) {
@@ -2387,7 +2340,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist )
                    if (datumtype == 'Z') len++;
                }
                GROWING(0, cat, start, cur, len);
-               if (!uni_to_bytes(aTHX_ &aptr, end, cur, fromlen,
+               if (!S_utf8_to_bytes(aTHX_ &aptr, end, cur, fromlen,
                                  datumtype | TYPE_IS_PACK))
                    Perl_croak(aTHX_ "panic: predicted utf8 length not available, "
                               "for '%c', aptr=%p end=%p cur=%p, fromlen=%"UVuf,
@@ -2687,7 +2640,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist )
                                len+(endb-buffer)*UTF8_EXPAND);
                        end = start+SvLEN(cat);
                    }
-                    cur = S_bytes_to_uni(buffer, endb-buffer, cur, 0);
+                    cur = my_bytes_to_utf8(buffer, endb-buffer, cur, 0);
                } else {
                    if (cur >= end) {
                        *cur = '\0';
@@ -3102,7 +3055,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist )
                    todo = fromlen;
                if (from_utf8) {
                    char buffer[64];
-                   if (!uni_to_bytes(aTHX_ &aptr, aend, buffer, todo,
+                   if (!S_utf8_to_bytes(aTHX_ &aptr, aend, buffer, todo,
                                      'u' | TYPE_IS_PACK)) {
                        *cur = '\0';
                        SvCUR_set(cat, cur - start);
index bbf6cf5..7f9d122 100644 (file)
@@ -160,7 +160,10 @@ PERL_CALLCONV OP *Perl_pp_mkdir(pTHX);
 PERL_CALLCONV OP *Perl_pp_modulo(pTHX);
 PERL_CALLCONV OP *Perl_pp_multideref(pTHX);
 PERL_CALLCONV OP *Perl_pp_multiply(pTHX);
+PERL_CALLCONV OP *Perl_pp_nbit_and(pTHX);
+PERL_CALLCONV OP *Perl_pp_nbit_or(pTHX);
 PERL_CALLCONV OP *Perl_pp_ncmp(pTHX);
+PERL_CALLCONV OP *Perl_pp_ncomplement(pTHX);
 PERL_CALLCONV OP *Perl_pp_ne(pTHX);
 PERL_CALLCONV OP *Perl_pp_negate(pTHX);
 PERL_CALLCONV OP *Perl_pp_next(pTHX);
@@ -220,8 +223,11 @@ PERL_CALLCONV OP *Perl_pp_rv2cv(pTHX);
 PERL_CALLCONV OP *Perl_pp_rv2gv(pTHX);
 PERL_CALLCONV OP *Perl_pp_rv2sv(pTHX);
 PERL_CALLCONV OP *Perl_pp_sassign(pTHX);
+PERL_CALLCONV OP *Perl_pp_sbit_and(pTHX);
+PERL_CALLCONV OP *Perl_pp_sbit_or(pTHX);
 PERL_CALLCONV OP *Perl_pp_schop(pTHX);
 PERL_CALLCONV OP *Perl_pp_scmp(pTHX);
+PERL_CALLCONV OP *Perl_pp_scomplement(pTHX);
 PERL_CALLCONV OP *Perl_pp_seekdir(pTHX);
 PERL_CALLCONV OP *Perl_pp_select(pTHX);
 PERL_CALLCONV OP *Perl_pp_semctl(pTHX);
index 7a1d75d..54132b4 100644 (file)
--- a/pp_sort.c
+++ b/pp_sort.c
@@ -555,7 +555,7 @@ S_mergesortsv(pTHX_ gptr *base, size_t nmemb, SVCOMPARE_t cmp, U32 flags)
            }
        }
     }
-done:
+  done:
     if (aux != small) Safefree(aux);   /* free iff allocated */
     if (flags) {
         PL_sort_RealCmp = savecmp;     /* Restore current comparison routine, if any */
@@ -894,7 +894,7 @@ S_qsortsvu(pTHX_ SV ** array, size_t num_elts, SVCOMPARE_t compare)
             elements in the middle of the partition, those are the ones we
             pick here (conveniently pointed at by u_right, pc_left, and
             u_left). The values of the left, center, and right elements
-            are refered to as l c and r in the following comments.
+            are referred to as l c and r in the following comments.
          */
 
 #ifdef QSORT_ORDER_GUESS
index 5f00bbe..e2f8edf 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -717,7 +717,7 @@ PP(pp_pipe_op)
 #endif
     RETPUSHYES;
 
-badexit:
+  badexit:
     RETPUSHUNDEF;
 #else
     DIE(aTHX_ PL_no_func, "pipe");
@@ -2555,7 +2555,7 @@ PP(pp_bind)
     else
        RETPUSHUNDEF;
 
-nuts:
+  nuts:
     report_evil_fh(gv);
     SETERRNO(EBADF,SS_IVCHAN);
     RETPUSHUNDEF;
@@ -2576,7 +2576,7 @@ PP(pp_listen)
     else
        RETPUSHUNDEF;
 
-nuts:
+  nuts:
     report_evil_fh(gv);
     SETERRNO(EBADF,SS_IVCHAN);
     RETPUSHUNDEF;
@@ -2638,11 +2638,11 @@ PP(pp_accept)
     PUSHp(namebuf, len);
     RETURN;
 
-nuts:
+  nuts:
     report_evil_fh(ggv);
     SETERRNO(EBADF,SS_IVCHAN);
 
-badexit:
+  badexit:
     RETPUSHUNDEF;
 
 }
@@ -2660,7 +2660,7 @@ PP(pp_shutdown)
     PUSHi( PerlSock_shutdown(PerlIO_fileno(IoIFP(io)), how) >= 0 );
     RETURN;
 
-nuts:
+  nuts:
     report_evil_fh(gv);
     SETERRNO(EBADF,SS_IVCHAN);
     RETPUSHUNDEF;
@@ -2740,10 +2740,10 @@ PP(pp_ssockopt)
     }
     RETURN;
 
-nuts:
+  nuts:
     report_evil_fh(gv);
     SETERRNO(EBADF,SS_IVCHAN);
-nuts2:
+  nuts2:
     RETPUSHUNDEF;
 
 }
@@ -2804,10 +2804,10 @@ PP(pp_getpeername)
     PUSHs(sv);
     RETURN;
 
-nuts:
+  nuts:
     report_evil_fh(gv);
     SETERRNO(EBADF,SS_IVCHAN);
-nuts2:
+  nuts2:
     RETPUSHUNDEF;
 }
 
@@ -3945,7 +3945,7 @@ PP(pp_open_dir)
        goto nope;
 
     RETPUSHYES;
-nope:
+  nope:
     if (!errno)
        SETERRNO(EBADF,RMS_DIR);
     RETPUSHUNDEF;
@@ -3996,7 +3996,7 @@ PP(pp_readdir)
 
     RETURN;
 
-nope:
+  nope:
     if (!errno)
        SETERRNO(EBADF,RMS_ISI);
     if (gimme == G_ARRAY)
@@ -4029,7 +4029,7 @@ PP(pp_telldir)
 
     PUSHi( PerlDir_tell(IoDIRP(io)) );
     RETURN;
-nope:
+  nope:
     if (!errno)
        SETERRNO(EBADF,RMS_ISI);
     RETPUSHUNDEF;
@@ -4055,7 +4055,7 @@ PP(pp_seekdir)
     (void)PerlDir_seek(IoDIRP(io), along);
 
     RETPUSHYES;
-nope:
+  nope:
     if (!errno)
        SETERRNO(EBADF,RMS_ISI);
     RETPUSHUNDEF;
@@ -4079,7 +4079,7 @@ PP(pp_rewinddir)
     }
     (void)PerlDir_rewind(IoDIRP(io));
     RETPUSHYES;
-nope:
+  nope:
     if (!errno)
        SETERRNO(EBADF,RMS_ISI);
     RETPUSHUNDEF;
@@ -4112,7 +4112,7 @@ PP(pp_closedir)
     IoDIRP(io) = 0;
 
     RETPUSHYES;
-nope:
+  nope:
     if (!errno)
        SETERRNO(EBADF,RMS_IFI);
     RETPUSHUNDEF;
diff --git a/proto.h b/proto.h
index 1aaa938..a8803b0 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -1359,9 +1359,9 @@ PERL_CALLCONV UV  Perl_grok_hex(pTHX_ const char* start, STRLEN* len_p, I32* flag
 #define PERL_ARGS_ASSERT_GROK_HEX      \
        assert(start); assert(len_p); assert(flags)
 
-PERL_CALLCONV int      Perl_grok_infnan(const char** sp, const char *send)
-                       __attribute__nonnull__(1)
-                       __attribute__nonnull__(2);
+PERL_CALLCONV int      Perl_grok_infnan(pTHX_ const char** sp, const char *send)
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_2);
 #define PERL_ARGS_ASSERT_GROK_INFNAN   \
        assert(sp); assert(send)
 
@@ -2773,6 +2773,12 @@ PERL_CALLCONV SV*        Perl_mro_set_private_data(pTHX_ struct mro_meta *const smeta,
 #define PERL_ARGS_ASSERT_MRO_SET_PRIVATE_DATA  \
        assert(smeta); assert(which); assert(data)
 
+PERL_CALLCONV SV*      Perl_multideref_stringify(pTHX_ const OP* o, CV *cv)
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_MULTIDEREF_STRINGIFY  \
+       assert(o); assert(cv)
+
 PERL_CALLCONV NV       Perl_my_atof(pTHX_ const char *s)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_MY_ATOF       \
@@ -4386,9 +4392,9 @@ PERL_CALLCONV void        Perl_sv_free2(pTHX_ SV *const sv, const U32 refcnt)
        assert(sv)
 
 PERL_CALLCONV void     Perl_sv_free_arenas(pTHX);
-PERL_CALLCONV SV*      Perl_sv_get_backrefs(pTHX_ SV *const sv)
+PERL_CALLCONV SV*      Perl_sv_get_backrefs(SV *const sv)
                        __attribute__pure__
-                       __attribute__nonnull__(pTHX_1);
+                       __attribute__nonnull__(1);
 #define PERL_ARGS_ASSERT_SV_GET_BACKREFS       \
        assert(sv)
 
@@ -4964,12 +4970,6 @@ PERL_CALLCONV UV Perl_to_utf8_case(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp, S
 
 PERL_CALLCONV bool     Perl_try_amagic_bin(pTHX_ int method, int flags);
 PERL_CALLCONV bool     Perl_try_amagic_un(pTHX_ int method, int flags);
-PERL_CALLCONV SV*      Perl_unop_aux_stringify(pTHX_ const OP* o, CV *cv)
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_UNOP_AUX_STRINGIFY    \
-       assert(o); assert(cv)
-
 PERL_CALLCONV I32      Perl_unpack_str(pTHX_ const char *pat, const char *patend, const char *s, const char *strbeg, const char *strend, char **new_s, I32 ocnt, U32 flags)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2)
@@ -6704,13 +6704,6 @@ PERL_STATIC_INLINE HV*   S_opmethod_stash(pTHX_ SV* meth)
 
 #endif
 #if defined(PERL_IN_PP_PACK_C)
-STATIC char *  S_bytes_to_uni(const U8 *start, STRLEN len, char *dest, const bool needs_swap)
-                       __attribute__warn_unused_result__
-                       __attribute__nonnull__(1)
-                       __attribute__nonnull__(3);
-#define PERL_ARGS_ASSERT_BYTES_TO_UNI  \
-       assert(start); assert(dest)
-
 STATIC int     S_div128(pTHX_ SV *pnum, bool *done)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
@@ -6752,6 +6745,13 @@ STATIC SV*       S_mul128(pTHX_ SV *sv, U8 m)
 #define PERL_ARGS_ASSERT_MUL128        \
        assert(sv)
 
+STATIC char *  S_my_bytes_to_utf8(const U8 *start, STRLEN len, char *dest, const bool needs_swap)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(1)
+                       __attribute__nonnull__(3);
+#define PERL_ARGS_ASSERT_MY_BYTES_TO_UTF8      \
+       assert(start); assert(dest)
+
 STATIC bool    S_need_utf8(const char *pat, const char *patend)
                        __attribute__nonnull__(1)
                        __attribute__nonnull__(2);
@@ -6953,12 +6953,6 @@ STATIC regnode*  S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV ** retur
 #define PERL_ARGS_ASSERT_HANDLE_REGEX_SETS     \
        assert(pRExC_state); assert(flagp); assert(oregcomp_parse)
 
-PERL_STATIC_INLINE UV* S_invlist_array(SV* const invlist)
-                       __attribute__warn_unused_result__
-                       __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_INVLIST_ARRAY \
-       assert(invlist)
-
 PERL_STATIC_INLINE SV* S_invlist_clone(pTHX_ SV* const invlist)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1);
@@ -7311,6 +7305,12 @@ PERL_STATIC_INLINE bool* S_get_invlist_offset_addr(SV* invlist)
 #define PERL_ARGS_ASSERT_GET_INVLIST_OFFSET_ADDR       \
        assert(invlist)
 
+PERL_STATIC_INLINE UV* S_invlist_array(SV* const invlist)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_INVLIST_ARRAY \
+       assert(invlist)
+
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C) || defined(PERL_IN_TOKE_C)
 PERL_CALLCONV SV*      Perl__core_swash_init(pTHX_ const char* pkg, const char* name, SV* listsv, I32 minbits, I32 none, SV* invlist, U8* const flags_p)
@@ -7414,6 +7414,35 @@ PERL_CALLCONV SV*        Perl__swash_to_invlist(pTHX_ SV* const swash)
 
 #endif
 #if defined(PERL_IN_REGEXEC_C)
+STATIC PL_SB_enum      S_advance_one_SB(pTHX_ U8 ** curpos, const U8 * const strend, const bool utf8_target)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_ADVANCE_ONE_SB        \
+       assert(curpos); assert(strend)
+
+STATIC PL_WB_enum      S_advance_one_WB(pTHX_ U8 ** curpos, const U8 * const strend, const bool utf8_target)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_ADVANCE_ONE_WB        \
+       assert(curpos); assert(strend)
+
+STATIC PL_SB_enum      S_backup_one_SB(pTHX_ const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_BACKUP_ONE_SB \
+       assert(strbeg); assert(curpos)
+
+STATIC PL_WB_enum      S_backup_one_WB(pTHX_ PL_WB_enum * previous, const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1)
+                       __attribute__nonnull__(pTHX_2)
+                       __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_BACKUP_ONE_WB \
+       assert(previous); assert(strbeg); assert(curpos)
+
 STATIC char*   S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s, const char *strend, regmatch_info *reginfo)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1)
@@ -7432,6 +7461,25 @@ STATIC bool      S_isFOO_utf8_lc(pTHX_ const U8 classnum, const U8* character)
 #define PERL_ARGS_ASSERT_ISFOO_UTF8_LC \
        assert(character)
 
+STATIC bool    S_isGCB(const PL_GCB_enum before, const PL_GCB_enum after)
+                       __attribute__warn_unused_result__;
+
+STATIC bool    S_isSB(pTHX_ PL_SB_enum before, PL_SB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_3)
+                       __attribute__nonnull__(pTHX_4)
+                       __attribute__nonnull__(pTHX_5);
+#define PERL_ARGS_ASSERT_ISSB  \
+       assert(strbeg); assert(curpos); assert(strend)
+
+STATIC bool    S_isWB(pTHX_ PL_WB_enum previous, PL_WB_enum before, PL_WB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_4)
+                       __attribute__nonnull__(pTHX_5)
+                       __attribute__nonnull__(pTHX_6);
+#define PERL_ARGS_ASSERT_ISWB  \
+       assert(strbeg); assert(curpos); assert(strend)
+
 STATIC I32     S_reg_check_named_buff_matched(const regexp *rex, const regnode *scan)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(1)
index 923be81..9f9c828 100644 (file)
 ( ( ( 0xED == ((U8*)s)[0] ) && ( ((U8*)s)[1] >= 0xA0 ) ) ? 3 : 0 )
 
 /*
-       GCB_L: Grapheme_Cluster_Break=L
-
-       \p{_X_GCB_L}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_L_utf8(s)                                                    \
-( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
-    ( ( 0x84 == ((U8*)s)[1] ) ?                                             \
-       3                                                                   \
-    : ( ( 0x85 == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0x9F ) ) ? 3 : 0 )      \
-: ( ( ( 0xEA == ((U8*)s)[0] ) && ( 0xA5 == ((U8*)s)[1] ) ) && ( 0xA0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBC ) ) ? 3 : 0 )
-
-/*
-       GCB_LV_LVT_V: Grapheme_Cluster_Break=(LV or LVT or V)
-
-       \p{_X_LV_LVT_V}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_LV_LVT_V_utf8(s)                                             \
-( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
-    ( ( 0x85 == ((U8*)s)[1] ) ?                                             \
-       ( ( ((U8*)s)[2] >= 0xA0 ) ? 3 : 0 )                                 \
-    : ( ( 0x86 == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0xA7 ) ) ? 3 : 0 )      \
-: ( 0xEA == ((U8*)s)[0] ) ?                                                 \
-    ( ( ((U8*)s)[1] >= 0xB0 ) ?                                             \
-       3                                                                   \
-    : 0 )                                                                   \
-: ( 0xEB == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ?                          \
-    3                                                                       \
-: ( 0xED == ((U8*)s)[0] ) ?                                                 \
-    ( ( ((U8*)s)[1] <= 0x9D ) ?                                             \
-       3                                                                   \
-    : ( 0x9E == ((U8*)s)[1] ) ?                                             \
-       ( ( ( ((U8*)s)[2] <= 0xA3 ) || ( ((U8*)s)[2] >= 0xB0 ) ) ? 3 : 0 )  \
-    : ( ( 0x9F == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )      \
-: 0 )
-
-/*
-       GCB_Prepend: Grapheme_Cluster_Break=Prepend
-
-       \p{_X_GCB_Prepend}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_Prepend_utf8(s)                                              \
-( 0 )
-
-/*
-       GCB_RI: Grapheme_Cluster_Break=RI
-
-       \p{_X_RI}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_RI_utf8(s)                                                   \
-( ( ( ( ( 0xF0 == ((U8*)s)[0] ) && ( 0x9F == ((U8*)s)[1] ) ) && ( 0x87 == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xA6 ) ) ? 4 : 0 )
-
-/*
-       GCB_SPECIAL_BEGIN_START: Grapheme_Cluster_Break=special_begin_starts
-
-       \p{_X_Special_Begin_Start}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_SPECIAL_BEGIN_START_utf8(s)                                  \
-( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( ((U8*)s)[1] & 0xFC ) == 0x84 ) ?                                  \
-       3                                                                   \
-    : 0 )                                                                   \
-: ( 0xEA == ((U8*)s)[0] ) ?                                                 \
-    ( ( 0xA5 == ((U8*)s)[1] ) ?                                             \
-       ( ( 0xA0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBC ) ? 3 : 0 )          \
-    : ( ((U8*)s)[1] >= 0xB0 ) ?                                             \
-       3                                                                   \
-    : 0 )                                                                   \
-: ( 0xEB == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ?                          \
-    3                                                                       \
-: ( 0xED == ((U8*)s)[0] ) ?                                                 \
-    ( ( ((U8*)s)[1] <= 0x9D ) ?                                             \
-       3                                                                   \
-    : ( 0x9E == ((U8*)s)[1] ) ?                                             \
-       ( ( ( ((U8*)s)[2] <= 0xA3 ) || ( ((U8*)s)[2] >= 0xB0 ) ) ? 3 : 0 )  \
-    : ( ( 0x9F == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] <= 0x86 ) || ( 0x8B <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBB ) ) ) ? 3 : 0 )\
-: ( ( ( ( 0xF0 == ((U8*)s)[0] ) && ( 0x9F == ((U8*)s)[1] ) ) && ( 0x87 == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xA6 ) ) ? 4 : 0 )
-
-/*
-       GCB_T: Grapheme_Cluster_Break=T
-
-       \p{_X_GCB_T}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_T_utf8(s)                                                    \
-( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
-    ( ( 0x86 == ((U8*)s)[1] ) ?                                             \
-       ( ( ((U8*)s)[2] >= 0xA8 ) ? 3 : 0 )                                 \
-    : ( 0x87 == ((U8*)s)[1] ) ?                                             \
-       3                                                                   \
-    : 0 )                                                                   \
-: ( ( ( 0xED == ((U8*)s)[0] ) && ( 0x9F == ((U8*)s)[1] ) ) && ( 0x8B <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBB ) ) ? 3 : 0 )
-
-/*
-       GCB_V: Grapheme_Cluster_Break=V
-
-       \p{_X_GCB_V}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_V_utf8(s)                                                    \
-( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
-    ( ( 0x85 == ((U8*)s)[1] ) ?                                             \
-       ( ( ((U8*)s)[2] >= 0xA0 ) ? 3 : 0 )                                 \
-    : ( ( 0x86 == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0xA7 ) ) ? 3 : 0 )      \
-: ( 0xED == ((U8*)s)[0] ) ?                                                 \
-    ( ( 0x9E == ((U8*)s)[1] ) ?                                             \
-       ( ( ((U8*)s)[2] >= 0xB0 ) ? 3 : 0 )                                 \
-    : ( ( 0x9F == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )      \
-: 0 )
-
-/*
        QUOTEMETA: Meta-characters that \Q should quote
 
        \p{_Perl_Quotemeta}
 ( ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x65 == ((U8*)s)[1] || 0x66 == ((U8*)s)[1] ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )
 
 /*
-       GCB_L: Grapheme_Cluster_Break=L
-
-       \p{_X_GCB_L}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_L_utf8(s)                                                    \
-( ( 0xBB == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || 0x51 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
-: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x51 == ((U8*)s)[1] ) ) && ( 0x52 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || 0x70 == ((U8*)s)[3] ) ) ? 4 : 0 )
-
-/*
-       GCB_LV_LVT_V: Grapheme_Cluster_Break=(LV or LVT or V)
-
-       \p{_X_LV_LVT_V}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_LV_LVT_V_utf8(s)                                             \
-( ( 0xBB == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( ((U8*)s)[1] & 0xFE ) == 0x52 ) ?                                  \
-       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
-    : ( ( 0x54 == ((U8*)s)[1] ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) ) ? 3 : 0 )\
-: ( 0xDD == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( 0x52 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( ((U8*)s)[1] & 0xFE ) == 0x62 ) ?\
-       ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
-    : ( 0x64 == ((U8*)s)[1] ) ?                                             \
-       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || 0x70 == ((U8*)s)[2] ) ?\
-           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
-       : ( 0x71 == ((U8*)s)[2] ) ?                                         \
-           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) || ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
-       : ( ( 0x72 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )\
-    : 0 )                                                                   \
-: 0 )
-
-/*
-       GCB_Prepend: Grapheme_Cluster_Break=Prepend
-
-       \p{_X_GCB_Prepend}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_Prepend_utf8(s)                                              \
-( 0 )
-
-/*
-       GCB_RI: Grapheme_Cluster_Break=RI
-
-       \p{_X_RI}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_RI_utf8(s)                                                   \
-( ( ( ( ( 0xDF == ((U8*)s)[0] ) && ( 0x70 == ((U8*)s)[1] ) ) && ( 0x56 == ((U8*)s)[2] ) ) && ( ( 0x47 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )
-
-/*
-       GCB_SPECIAL_BEGIN_START: Grapheme_Cluster_Break=special_begin_starts
-
-       \p{_X_Special_Begin_Start}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_SPECIAL_BEGIN_START_utf8(s)                                  \
-( ( 0xBB == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x56 ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
-: ( 0xDD == ((U8*)s)[0] ) ?                                                 \
-    ( ( 0x51 == ((U8*)s)[1] ) ?                                             \
-       ( ( ( 0x52 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || 0x70 == ((U8*)s)[3] ) ) ? 4 : 0 )\
-    : ( ( 0x52 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( ((U8*)s)[1] & 0xFE ) == 0x62 ) ?\
-       ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
-    : ( 0x64 == ((U8*)s)[1] ) ?                                             \
-       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || 0x70 == ((U8*)s)[2] ) ?\
-           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
-       : ( 0x71 == ((U8*)s)[2] ) ?                                         \
-           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) || ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
-       : ( 0x72 == ((U8*)s)[2] ) ?                                         \
-           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || ( 0x52 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
-       : ( ( 0x73 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) ) ) ? 4 : 0 )\
-    : 0 )                                                                   \
-: ( ( ( ( 0xDF == ((U8*)s)[0] ) && ( 0x70 == ((U8*)s)[1] ) ) && ( 0x56 == ((U8*)s)[2] ) ) && ( ( 0x47 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )
-
-/*
-       GCB_T: Grapheme_Cluster_Break=T
-
-       \p{_X_GCB_T}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_T_utf8(s)                                                    \
-( ( 0xBB == ((U8*)s)[0] ) ?                                                 \
-    ( ( 0x54 == ((U8*)s)[1] ) ?                                             \
-       ( ( ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
-    : ( ( 0x55 == ((U8*)s)[1] || 0x56 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
-: ( ( 0xDD == ((U8*)s)[0] ) && ( 0x64 == ((U8*)s)[1] ) ) ? ( ( 0x72 == ((U8*)s)[2] ) ?\
-           ( ( ( 0x52 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
-       : ( ( 0x73 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) ) ) ? 4 : 0 ) : 0 )
-
-/*
-       GCB_V: Grapheme_Cluster_Break=V
-
-       \p{_X_GCB_V}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_V_utf8(s)                                                    \
-( ( 0xBB == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( ((U8*)s)[1] & 0xFE ) == 0x52 ) ?                                  \
-       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
-    : ( ( 0x54 == ((U8*)s)[1] ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) ) ? 3 : 0 )\
-: ( ( 0xDD == ((U8*)s)[0] ) && ( 0x64 == ((U8*)s)[1] ) ) ? ( ( 0x71 == ((U8*)s)[2] ) ?\
-           ( ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
-       : ( ( 0x72 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
-
-/*
        UTF8_CHAR: Matches legal UTF-EBCDIC encoded characters from 2 through 3 bytes
 
        0xA0 - 0x3FFF
 ( ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xFE ) == 0x64 ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )
 
 /*
-       GCB_L: Grapheme_Cluster_Break=L
-
-       \p{_X_GCB_L}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_L_utf8(s)                                                    \
-( ( 0xBC == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || 0x51 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
-: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x51 == ((U8*)s)[1] ) ) && ( 0x52 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) ) ) ? 4 : 0 )
-
-/*
-       GCB_LV_LVT_V: Grapheme_Cluster_Break=(LV or LVT or V)
-
-       \p{_X_LV_LVT_V}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_LV_LVT_V_utf8(s)                                             \
-( ( 0xBC == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( ((U8*)s)[1] & 0xFE ) == 0x52 ) ?                                  \
-       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
-    : ( ( 0x54 == ((U8*)s)[1] ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) ) ? 3 : 0 )\
-: ( 0xDD == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( 0x52 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || 0x62 == ((U8*)s)[1] ) ?\
-       ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
-    : ( 0x63 == ((U8*)s)[1] ) ?                                             \
-       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) ) ?\
-           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
-       : ( 0x70 == ((U8*)s)[2] ) ?                                         \
-           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) || ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
-       : ( ( 0x71 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )\
-    : 0 )                                                                   \
-: 0 )
-
-/*
-       GCB_Prepend: Grapheme_Cluster_Break=Prepend
-
-       \p{_X_GCB_Prepend}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_Prepend_utf8(s)                                              \
-( 0 )
-
-/*
-       GCB_RI: Grapheme_Cluster_Break=RI
-
-       \p{_X_RI}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_RI_utf8(s)                                                   \
-( ( ( ( ( 0xDF == ((U8*)s)[0] ) && ( 0x6A == ((U8*)s)[1] ) ) && ( 0x56 == ((U8*)s)[2] ) ) && ( ( 0x47 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )
-
-/*
-       GCB_SPECIAL_BEGIN_START: Grapheme_Cluster_Break=special_begin_starts
-
-       \p{_X_Special_Begin_Start}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_SPECIAL_BEGIN_START_utf8(s)                                  \
-( ( 0xBC == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x56 ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
-: ( 0xDD == ((U8*)s)[0] ) ?                                                 \
-    ( ( 0x51 == ((U8*)s)[1] ) ?                                             \
-       ( ( ( 0x52 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) ) ) ? 4 : 0 )\
-    : ( ( 0x52 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || 0x62 == ((U8*)s)[1] ) ?\
-       ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
-    : ( 0x63 == ((U8*)s)[1] ) ?                                             \
-       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) ) ?\
-           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
-       : ( 0x70 == ((U8*)s)[2] ) ?                                         \
-           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) || ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
-       : ( 0x71 == ((U8*)s)[2] ) ?                                         \
-           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || ( 0x52 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
-       : ( ( 0x72 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) ) ) ? 4 : 0 )\
-    : 0 )                                                                   \
-: ( ( ( ( 0xDF == ((U8*)s)[0] ) && ( 0x6A == ((U8*)s)[1] ) ) && ( 0x56 == ((U8*)s)[2] ) ) && ( ( 0x47 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )
-
-/*
-       GCB_T: Grapheme_Cluster_Break=T
-
-       \p{_X_GCB_T}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_T_utf8(s)                                                    \
-( ( 0xBC == ((U8*)s)[0] ) ?                                                 \
-    ( ( 0x54 == ((U8*)s)[1] ) ?                                             \
-       ( ( ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
-    : ( ( 0x55 == ((U8*)s)[1] || 0x56 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
-: ( ( 0xDD == ((U8*)s)[0] ) && ( 0x63 == ((U8*)s)[1] ) ) ? ( ( 0x71 == ((U8*)s)[2] ) ?\
-           ( ( ( 0x52 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
-       : ( ( 0x72 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) ) ) ? 4 : 0 ) : 0 )
-
-/*
-       GCB_V: Grapheme_Cluster_Break=V
-
-       \p{_X_GCB_V}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_V_utf8(s)                                                    \
-( ( 0xBC == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( ((U8*)s)[1] & 0xFE ) == 0x52 ) ?                                  \
-       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
-    : ( ( 0x54 == ((U8*)s)[1] ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) ) ? 3 : 0 )\
-: ( ( 0xDD == ((U8*)s)[0] ) && ( 0x63 == ((U8*)s)[1] ) ) ? ( ( 0x70 == ((U8*)s)[2] ) ?\
-           ( ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
-       : ( ( 0x71 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
-
-/*
        UTF8_CHAR: Matches legal UTF-EBCDIC encoded characters from 2 through 3 bytes
 
        0xA0 - 0x3FFF
 ( ( ( ( ( 0xDC == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xFE ) == 0x66 ) ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) && ( ( ( ((U8*)s)[3] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[3] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[3] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[3] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[3] & 0xFA ) == 0x70 ) ) ) ? 4 : 0 )
 
 /*
-       GCB_L: Grapheme_Cluster_Break=L
-
-       \p{_X_GCB_L}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_L_utf8(s)                                                    \
-( ( 0xBA == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( 0x49 == ((U8*)s)[1] || ( 0x51 == ((U8*)s)[1] || 0x52 == ((U8*)s)[1] ) ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) ? 3 : 0 )\
-: ( ( ( ( 0xDC == ((U8*)s)[0] ) && ( 0x52 == ((U8*)s)[1] ) ) && ( 0x53 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )
-
-/*
-       GCB_LV_LVT_V: Grapheme_Cluster_Break=(LV or LVT or V)
-
-       \p{_X_LV_LVT_V}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_LV_LVT_V_utf8(s)                                             \
-( ( 0xBA == ((U8*)s)[0] ) ?                                                 \
-    ( ( 0x53 == ((U8*)s)[1] || 0x54 == ((U8*)s)[1] ) ?                      \
-       ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
-    : ( ( 0x55 == ((U8*)s)[1] ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) ) ? 3 : 0 )\
-: ( 0xDC == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( 0x53 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x64 ) ) ?\
-       ( ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) && ( ( ( ((U8*)s)[3] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[3] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[3] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[3] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[3] & 0xFA ) == 0x70 ) ) ) ? 4 : 0 )\
-    : ( 0x65 == ((U8*)s)[1] ) ?                                             \
-       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ?\
-           ( ( ( ( ((U8*)s)[3] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[3] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[3] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[3] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[3] & 0xFA ) == 0x70 ) ) ? 4 : 0 )\
-       : ( 0x73 == ((U8*)s)[2] ) ?                                         \
-           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) || ( ((U8*)s)[3] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ? 4 : 0 )\
-       : ( ( 0x74 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )\
-    : 0 )                                                                   \
-: 0 )
-
-/*
-       GCB_Prepend: Grapheme_Cluster_Break=Prepend
-
-       \p{_X_GCB_Prepend}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_Prepend_utf8(s)                                              \
-( 0 )
-
-/*
-       GCB_RI: Grapheme_Cluster_Break=RI
-
-       \p{_X_RI}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_RI_utf8(s)                                                   \
-( ( ( ( ( 0xDE == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x57 == ((U8*)s)[2] ) ) && ( ( 0x47 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ) ? 4 : 0 )
-
-/*
-       GCB_SPECIAL_BEGIN_START: Grapheme_Cluster_Break=special_begin_starts
-
-       \p{_X_Special_Begin_Start}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_SPECIAL_BEGIN_START_utf8(s)                                  \
-( ( 0xBA == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( 0x49 == ((U8*)s)[1] || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x57 ) ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) ? 3 : 0 )\
-: ( 0xDC == ((U8*)s)[0] ) ?                                                 \
-    ( ( 0x52 == ((U8*)s)[1] ) ?                                             \
-       ( ( ( 0x53 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
-    : ( ( 0x53 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x64 ) ) ?\
-       ( ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) && ( ( ( ((U8*)s)[3] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[3] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[3] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[3] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[3] & 0xFA ) == 0x70 ) ) ) ? 4 : 0 )\
-    : ( 0x65 == ((U8*)s)[1] ) ?                                             \
-       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ?\
-           ( ( ( ( ((U8*)s)[3] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[3] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[3] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[3] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[3] & 0xFA ) == 0x70 ) ) ? 4 : 0 )\
-       : ( 0x73 == ((U8*)s)[2] ) ?                                         \
-           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) || ( ((U8*)s)[3] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ? 4 : 0 )\
-       : ( 0x74 == ((U8*)s)[2] ) ?                                         \
-           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || ( 0x53 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ? 4 : 0 )\
-       : ( ( 0x75 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( ((U8*)s)[3] & 0xFE ) == 0x70 ) ) ? 4 : 0 )\
-    : 0 )                                                                   \
-: ( ( ( ( 0xDE == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x57 == ((U8*)s)[2] ) ) && ( ( 0x47 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ) ? 4 : 0 )
-
-/*
-       GCB_T: Grapheme_Cluster_Break=T
-
-       \p{_X_GCB_T}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_T_utf8(s)                                                    \
-( ( 0xBA == ((U8*)s)[0] ) ?                                                 \
-    ( ( 0x55 == ((U8*)s)[1] ) ?                                             \
-       ( ( 0x49 == ((U8*)s)[2] || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x75 ) ) ? 3 : 0 )\
-    : ( ( ( ((U8*)s)[1] & 0xFE ) == 0x56 ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) ? 3 : 0 )\
-: ( ( 0xDC == ((U8*)s)[0] ) && ( 0x65 == ((U8*)s)[1] ) ) ? ( ( 0x74 == ((U8*)s)[2] ) ?\
-           ( ( ( 0x53 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ? 4 : 0 )\
-       : ( ( 0x75 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( ((U8*)s)[3] & 0xFE ) == 0x70 ) ) ? 4 : 0 ) : 0 )
-
-/*
-       GCB_V: Grapheme_Cluster_Break=V
-
-       \p{_X_GCB_V}
-*/
-/*** GENERATED CODE ***/
-#define is_GCB_V_utf8(s)                                                    \
-( ( 0xBA == ((U8*)s)[0] ) ?                                                 \
-    ( ( 0x53 == ((U8*)s)[1] || 0x54 == ((U8*)s)[1] ) ?                      \
-       ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
-    : ( ( 0x55 == ((U8*)s)[1] ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) ) ? 3 : 0 )\
-: ( ( 0xDC == ((U8*)s)[0] ) && ( 0x65 == ((U8*)s)[1] ) ) ? ( ( 0x73 == ((U8*)s)[2] ) ?\
-           ( ( ( ((U8*)s)[3] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ? 4 : 0 )\
-       : ( ( 0x74 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
-
-/*
        UTF8_CHAR: Matches legal UTF-EBCDIC encoded characters from 2 through 3 bytes
 
        0xA0 - 0x3FFF
 #endif /* H_REGCHARCLASS */
 
 /* Generated from:
- * d3ce45436d251560bef015ee209e8a0661a0e564216585e9e84f25ec8ac715ae regen/regcharclass.pl
+ * 76d3d07dadbba1440342f5ab3701db8c9f6df5a851b1cfd08f7b09014d4efc52 regen/regcharclass.pl
  * ex: set ro: */
index 64a90b4..68f1c49 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -87,7 +87,6 @@ EXTERN_C const struct regexp_engine my_reg_engine;
 #endif
 
 #include "dquote_static.c"
-#include "charclass_invlists.h"
 #include "inline_invlist.c"
 #include "unicode_constants.h"
 
@@ -521,6 +520,10 @@ static const scan_data_t zero_scan_data =
                 UTF8fARG(UTF, offset, RExC_precomp), \
                 UTF8fARG(UTF, RExC_end - RExC_precomp - offset, RExC_precomp + offset)
 
+/* Used to point after bad bytes for an error message, but avoid skipping
+ * past a nul byte. */
+#define SKIP_IF_CHAR(s) (!*(s) ? 0 : UTF ? UTF8SKIP(s) : 1)
+
 /*
  * Calls SAVEDESTRUCTOR_X if needed, then calls Perl_croak with the given
  * arg. Show regex, up to a maximum length. If it's too long, chop and add
@@ -1916,7 +1919,7 @@ then read 'r' and go to state 8 followed by 's' which takes us to state 9 which
 is also accepting. Thus we know that we can match both 'he' and 'hers' with a
 single traverse. We store a mapping from accepting to state to which word was
 matched, and then when we have multiple possibilities we try to complete the
-rest of the regex in the order in which they occured in the alternation.
+rest of the regex in the order in which they occurred in the alternation.
 
 The only prior NFA like behaviour that would be changed by the TRIE support is
 the silent ignoring of duplicate alternations which are of the form:
@@ -4382,7 +4385,7 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp,
                     ( flags & SCF_IN_DEFINE )
                     ||
                     (
-                        (is_inf_internal || is_inf || data->flags & SF_IS_INF)
+                        (is_inf_internal || is_inf || (data && data->flags & SF_IS_INF))
                         &&
                         ( (flags & (SCF_DO_STCLASS | SCF_DO_SUBSTR)) == 0 )
                     )
@@ -6409,7 +6412,6 @@ Perl_re_op_compile(pTHX_ SV ** const patternp, int pat_count,
 
     DEBUG_r(if (!PL_colorset) reginitcolors());
 
-#ifndef PERL_IN_XSUB_RE
     /* Initialize these here instead of as-needed, as is quick and avoids
      * having to test them each time otherwise */
     if (! PL_AboveLatin1) {
@@ -6427,7 +6429,6 @@ Perl_re_op_compile(pTHX_ SV ** const patternp, int pat_count,
        PL_InBitmap = _add_range_to_invlist(PL_InBitmap, 0,
                                                     NUM_ANYOF_CODE_POINTS - 1);
     }
-#endif
 
     pRExC_state->code_blocks = NULL;
     pRExC_state->num_code_blocks = 0;
@@ -6879,7 +6880,7 @@ Perl_re_op_compile(pTHX_ SV ** const patternp, int pat_count,
         SAVEFREEPV(RExC_recurse);
     }
 
-reStudy:
+  reStudy:
     r->minlen = minlen = sawlookahead = sawplus = sawopen = sawminmod = 0;
     DEBUG_r(
         RExC_study_chunk_recursed_count= 0;
@@ -8009,27 +8010,6 @@ S__invlist_array_init(SV* const invlist, const bool will_have_0)
     return zero_addr + *offset;
 }
 
-PERL_STATIC_INLINE UV*
-S_invlist_array(SV* const invlist)
-{
-    /* Returns the pointer to the inversion list's array.  Every time the
-     * length changes, this needs to be called in case malloc or realloc moved
-     * it */
-
-    PERL_ARGS_ASSERT_INVLIST_ARRAY;
-
-    /* Must not be empty.  If these fail, you probably didn't check for <len>
-     * being non-zero before trying to get the array */
-    assert(_invlist_len(invlist));
-
-    /* The very first element always contains zero, The array begins either
-     * there, or if the inversion list is offset, at the element after it.
-     * The offset header field determines which; it contains 0 or 1 to indicate
-     * how much additionally to add */
-    assert(0 == *(SvPVX(invlist)));
-    return ((UV *) SvPVX(invlist) + *get_invlist_offset_addr(invlist));
-}
-
 PERL_STATIC_INLINE void
 S_invlist_set_len(pTHX_ SV* const invlist, const UV len, const bool offset)
 {
@@ -8468,7 +8448,7 @@ Perl__invlist_populate_swatch(SV* const invlist,
             swatch[offset >> 3] |= 1 << (offset & 7);
         }
 
-    join_end_of_list:
+      join_end_of_list:
 
        /* Quit if at the end of the list */
         if (i >= len) {
@@ -9640,7 +9620,7 @@ S_parse_lparen_question_flags(pTHX_ RExC_state_t *pRExC_state)
                      : REGEX_DEPENDS_CHARSET;
                 has_charset_modifier = DEPENDS_PAT_MOD;
                 break;
-            excess_modifier:
+              excess_modifier:
                 RExC_parse++;
                 if (has_charset_modifier == ASCII_RESTRICT_PAT_MOD) {
                     vFAIL2("Regexp modifier \"%c\" may appear a maximum of twice", ASCII_RESTRICT_PAT_MOD);
@@ -9653,7 +9633,7 @@ S_parse_lparen_question_flags(pTHX_ RExC_state_t *pRExC_state)
                     vFAIL3("Regexp modifiers \"%c\" and \"%c\" are mutually exclusive", has_charset_modifier, *(RExC_parse - 1));
                 }
                 NOT_REACHED; /*NOTREACHED*/
-            neg_modifier:
+              neg_modifier:
                 RExC_parse++;
                 vFAIL2("Regexp modifier \"%c\" may not appear after the \"-\"",
                                     *(RExC_parse - 1));
@@ -9725,8 +9705,8 @@ S_parse_lparen_question_flags(pTHX_ RExC_state_t *pRExC_state)
                 return;
                 /*NOTREACHED*/
             default:
-            fail_modifiers:
-                RExC_parse += UTF ? UTF8SKIP(RExC_parse) : 1;
+              fail_modifiers:
+                RExC_parse += SKIP_IF_CHAR(RExC_parse);
                /* diag_listed_as: Sequence (?%s...) not recognized in regex; marked by <-- HERE in m/%s/ */
                 vFAIL2utf8f("Sequence (%"UTF8f"...) not recognized",
                       UTF8fARG(UTF, RExC_parse-seqstart, seqstart));
@@ -9974,7 +9954,8 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
                     nextchar(pRExC_state);
                     return ret;
                 }
-                RExC_parse++;
+                --RExC_parse;
+                RExC_parse += SKIP_IF_CHAR(RExC_parse);
                 /* diag_listed_as: Sequence (?%s...) not recognized in regex; marked by <-- HERE in m/%s/ */
                vFAIL3("Sequence (%.*s...) not recognized",
                                 RExC_parse-seqstart, seqstart);
@@ -10134,12 +10115,14 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
               parse_recursion:
                 {
                     bool is_neg = FALSE;
+                    UV unum;
                     parse_start = RExC_parse - 1; /* MJD */
                     if (*RExC_parse == '-') {
                         RExC_parse++;
                         is_neg = TRUE;
                     }
-                    num = grok_atou(RExC_parse, &endptr);
+                    unum = grok_atou(RExC_parse, &endptr);
+                    num = (unum > I32_MAX) ? I32_MAX : (I32)unum;
                     if (endptr)
                        RExC_parse = (char*)endptr;
                     if (is_neg) {
@@ -10197,7 +10180,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
            case '?':           /* (??...) */
                is_logical = 1;
                if (*RExC_parse != '{') {
-                   RExC_parse++;
+                    RExC_parse += SKIP_IF_CHAR(RExC_parse);
                     /* diag_listed_as: Sequence (?%s...) not recognized in regex; marked by <-- HERE in m/%s/ */
                     vFAIL2utf8f(
                         "Sequence (%"UTF8f"...) not recognized",
@@ -10313,8 +10296,8 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
                     ret = reganode(pRExC_state,NGROUPP,num);
                     goto insert_if_check_paren;
                }
-               else if (strnEQ(RExC_parse, "DEFINE",
-                                       MIN(DEFINE_len, RExC_end - RExC_parse)))
+               else if (RExC_end - RExC_parse >= DEFINE_len
+                        && strnEQ(RExC_parse, "DEFINE", DEFINE_len))
                 {
                    ret = reganode(pRExC_state,DEFINEP,0);
                    RExC_parse += DEFINE_len;
@@ -10430,7 +10413,8 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
               parse_flags:
                parse_lparen_question_flags(pRExC_state);
                 if (UCHARAT(RExC_parse) != ':') {
-                    nextchar(pRExC_state);
+                    if (*RExC_parse)
+                        nextchar(pRExC_state);
                     *flagp = TRYAGAIN;
                     return NULL;
                 }
@@ -10463,6 +10447,8 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth)
             Set_Node_Offset(ret, RExC_parse); /* MJD */
            is_open = 1;
        } else {
+            /* with RXf_PMf_NOCAPTURE treat (...) as (?:...) */
+            paren = ':';
            ret = NULL;
        }
     }
@@ -10870,7 +10856,7 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
                 nextchar(pRExC_state);
             }
 
-       do_curly:
+         do_curly:
            if ((flags&SIMPLE)) {
                 MARK_NAUGHTY_EXP(2, 2);
                reginsert(pRExC_state, CURLY, ret, depth+1);
@@ -11621,7 +11607,7 @@ S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
 
     PERL_ARGS_ASSERT_REGATOM;
 
-tryagain:
+  tryagain:
     switch ((U8)*RExC_parse) {
     case '^':
        RExC_seen_zerolen++;
@@ -11659,7 +11645,7 @@ tryagain:
                        FALSE, /* means parse the whole char class */
                        TRUE, /* allow multi-char folds */
                        FALSE, /* don't silence non-portable warnings. */
-                       RExC_strict,
+                       (bool) RExC_strict,
                        NULL);
        if (*RExC_parse != ']') {
            RExC_parse = oregcomp_parse;
@@ -11781,49 +11767,121 @@ tryagain:
             arg = ANYOF_WORDCHAR;
             goto join_posix;
 
+       case 'B':
+            invert = 1;
+            /* FALLTHROUGH */
        case 'b':
+          {
+           regex_charset charset = get_regex_charset(RExC_flags);
+
            RExC_seen_zerolen++;
             RExC_seen |= REG_LOOKBEHIND_SEEN;
-           op = BOUND + get_regex_charset(RExC_flags);
-            if (op > BOUNDA) {  /* /aa is same as /a */
-                op = BOUNDA;
-            }
-            else if (op == BOUNDL) {
+           op = BOUND + charset;
+
+            if (op == BOUNDL) {
                 RExC_contains_locale = 1;
             }
+
            ret = reg_node(pRExC_state, op);
-           FLAGS(ret) = get_regex_charset(RExC_flags);
            *flagp |= SIMPLE;
-           if ((U8) *(RExC_parse + 1) == '{') {
-                /* diag_listed_as: Use "%s" instead of "%s" */
-               vFAIL("Use \"\\b\\{\" instead of \"\\b{\"");
-           }
-           goto finish_meta_pat;
-       case 'B':
-           RExC_seen_zerolen++;
-            RExC_seen |= REG_LOOKBEHIND_SEEN;
-           op = NBOUND + get_regex_charset(RExC_flags);
-            if (op > NBOUNDA) { /* /aa is same as /a */
-                op = NBOUNDA;
-            }
-            else if (op == NBOUNDL) {
-                RExC_contains_locale = 1;
+           if (*(RExC_parse + 1) != '{') {
+                FLAGS(ret) = TRADITIONAL_BOUND;
+                if (PASS2 && op > BOUNDA) {  /* /aa is same as /a */
+                    OP(ret) = BOUNDA;
+                }
             }
-           ret = reg_node(pRExC_state, op);
-           FLAGS(ret) = get_regex_charset(RExC_flags);
-           *flagp |= SIMPLE;
-           if ((U8) *(RExC_parse + 1) == '{') {
-                /* diag_listed_as: Use "%s" instead of "%s" */
-               vFAIL("Use \"\\B\\{\" instead of \"\\B{\"");
+            else {
+                STRLEN length;
+                char name = *RExC_parse;
+                char * endbrace;
+                RExC_parse += 2;
+                endbrace = strchr(RExC_parse, '}');
+
+                if (! endbrace) {
+                    vFAIL2("Missing right brace on \\%c{}", name);
+                }
+                /* XXX Need to decide whether to take spaces or not.  Should be
+                 * consistent with \p{}, but that currently is SPACE, which
+                 * means vertical too, which seems wrong
+                 * while (isBLANK(*RExC_parse)) {
+                    RExC_parse++;
+                }*/
+                if (endbrace == RExC_parse) {
+                    RExC_parse++;  /* After the '}' */
+                    vFAIL2("Empty \\%c{}", name);
+                }
+                length = endbrace - RExC_parse;
+                /*while (isBLANK(*(RExC_parse + length - 1))) {
+                    length--;
+                }*/
+                switch (*RExC_parse) {
+                    case 'g':
+                        if (length != 1
+                            && (length != 3 || strnNE(RExC_parse + 1, "cb", 2)))
+                        {
+                            goto bad_bound_type;
+                        }
+                        FLAGS(ret) = GCB_BOUND;
+                        break;
+                    case 's':
+                        if (length != 2 || *(RExC_parse + 1) != 'b') {
+                            goto bad_bound_type;
+                        }
+                        FLAGS(ret) = SB_BOUND;
+                        break;
+                    case 'w':
+                        if (length != 2 || *(RExC_parse + 1) != 'b') {
+                            goto bad_bound_type;
+                        }
+                        FLAGS(ret) = WB_BOUND;
+                        break;
+                    default:
+                      bad_bound_type:
+                        RExC_parse = endbrace;
+                       vFAIL2utf8f(
+                            "'%"UTF8f"' is an unknown bound type",
+                           UTF8fARG(UTF, length, endbrace - length));
+                        NOT_REACHED; /*NOTREACHED*/
+                }
+                RExC_parse = endbrace;
+                RExC_uni_semantics = 1;
+
+                if (PASS2 && op >= BOUNDA) {  /* /aa is same as /a */
+                    OP(ret) = BOUNDU;
+                    length += 4;
+
+                    /* Don't have to worry about UTF-8, in this message because
+                     * to get here the contents of the \b must be ASCII */
+                    ckWARN4reg(RExC_parse + 1,  /* Include the '}' in msg */
+                              "Using /u for '%.*s' instead of /%s",
+                              (unsigned) length,
+                              endbrace - length + 1,
+                              (charset == REGEX_ASCII_RESTRICTED_CHARSET)
+                              ? ASCII_RESTRICT_PAT_MODS
+                              : ASCII_MORE_RESTRICT_PAT_MODS);
+                }
            }
+
+            if (PASS2 && invert) {
+                OP(ret) += NBOUND - BOUND;
+            }
            goto finish_meta_pat;
+          }
 
        case 'D':
             invert = 1;
             /* FALLTHROUGH */
        case 'd':
             arg = ANYOF_DIGIT;
-            goto join_posix;
+            if (! DEPENDS_SEMANTICS) {
+                goto join_posix;
+            }
+
+            /* \d doesn't have any matches in the upper Latin1 range, hence /d
+             * is equivalent to /u.  Changing to /u saves some branches at
+             * runtime */
+            op = POSIXU;
+            goto join_posix_op_known;
 
        case 'R':
            ret = reg_node(pRExC_state, LNBREAK);
@@ -11852,7 +11910,7 @@ tryagain:
        case 's':
             arg = ANYOF_SPACE;
 
-        join_posix:
+          join_posix:
 
            op = POSIXD + get_regex_charset(RExC_flags);
             if (op > POSIXA) {  /* /aa is same as /a */
@@ -11862,7 +11920,7 @@ tryagain:
                 RExC_contains_locale = 1;
             }
 
-        join_posix_op_known:
+          join_posix_op_known:
 
             if (invert) {
                 op += NPOSIXD - POSIXD;
@@ -11876,7 +11934,7 @@ tryagain:
            *flagp |= HASWIDTH|SIMPLE;
             /* FALLTHROUGH */
 
-         finish_meta_pat:
+          finish_meta_pat:
            nextchar(pRExC_state);
             Set_Node_Length(ret, 2); /* MJD */
            break;
@@ -11895,7 +11953,7 @@ tryagain:
                                FALSE, /* don't silence non-portable warnings.
                                          It would be a bug if these returned
                                          non-portables */
-                               RExC_strict,
+                               (bool) RExC_strict,
                                NULL);
                 /* regclass() can only return RESTART_UTF8 if multi-char folds
                    are allowed.  */
@@ -11932,7 +11990,7 @@ tryagain:
             }
             break;
        case 'k':    /* Handle \k<NAME> and \k'NAME' */
-       parse_named_seq:
+      parse_named_seq:
         {
             char ch= RExC_parse[1];
            if (ch != '<' && ch != '\'' && ch != '{') {
@@ -12022,19 +12080,37 @@ tryagain:
                 }
                 else {
                     num = S_backref_value(RExC_parse);
-                    /* bare \NNN might be backref or octal - if it is larger than or equal
-                     * RExC_npar then it is assumed to be and octal escape.
-                     * Note RExC_npar is +1 from the actual number of parens*/
-                    if (num == I32_MAX || (num > 9 && num >= RExC_npar
-                            && *RExC_parse != '8' && *RExC_parse != '9'))
+                    /* bare \NNN might be backref or octal - if it is larger
+                     * than or equal RExC_npar then it is assumed to be an
+                     * octal escape. Note RExC_npar is +1 from the actual
+                     * number of parens. */
+                    /* Note we do NOT check if num == I32_MAX here, as that is
+                     * handled by the RExC_npar check */
+
+                    if (
+                        /* any numeric escape < 10 is always a backref */
+                        num > 9
+                        /* any numeric escape < RExC_npar is a backref */
+                        && num >= RExC_npar
+                        /* cannot be an octal escape if it starts with 8 */
+                        && *RExC_parse != '8'
+                        /* cannot be an octal escape it it starts with 9 */
+                        && *RExC_parse != '9'
+                    )
                     {
-                        /* Probably a character specified in octal, e.g. \35 */
+                        /* Probably not a backref, instead likely to be an
+                         * octal character escape, e.g. \35 or \777.
+                         * The above logic should make it obvious why using
+                         * octal escapes in patterns is problematic. - Yves */
                         goto defchar;
                     }
                 }
 
-                /* at this point RExC_parse definitely points to a backref
-                 * number */
+                /* At this point RExC_parse points at a numeric escape like
+                 * \12 or \88 or something similar, which we should NOT treat
+                 * as an octal escape. It may or may not be a valid backref
+                 * escape. For instance \88888888 is unlikely to be a valid
+                 * backref. */
                {
 #ifdef RE_TRACK_PATTERN_OFFSETS
                    char * const parse_start = RExC_parse - 1; /* MJD */
@@ -12098,7 +12174,7 @@ tryagain:
 
            RExC_parse++;
 
-       defchar: {
+         defchar: {
            STRLEN len = 0;
            UV ender = 0;
            char *p;
@@ -12137,7 +12213,7 @@ tryagain:
 
             s0 = s;
 
-       reparse:
+         reparse:
 
             /* We do the EXACTFish to EXACT node only if folding.  (And we
              * don't need to figure this out until pass 2) */
@@ -12270,7 +12346,7 @@ tryagain:
                                                       &result,
                                                       &error_msg,
                                                       PASS2, /* out warnings */
-                                                       RExC_strict,
+                                                       (bool) RExC_strict,
                                                        TRUE, /* Output warnings
                                                                 for non-
                                                                 portables */
@@ -12299,7 +12375,7 @@ tryagain:
                                                       &result,
                                                       &error_msg,
                                                       PASS2, /* out warnings */
-                                                       RExC_strict,
+                                                       (bool) RExC_strict,
                                                        TRUE, /* Silence warnings
                                                                 for non-
                                                                 portables */
@@ -12325,6 +12401,9 @@ tryagain:
                        break;
                     case '8': case '9': /* must be a backreference */
                         --p;
+                        /* we have an escape like \8 which cannot be an octal escape
+                         * so we exit the loop, and let the outer loop handle this
+                         * escape which may or may not be a legitimate backref. */
                         goto loopdone;
                     case '1': case '2': case '3':case '4':
                    case '5': case '6': case '7':
@@ -12373,7 +12452,7 @@ tryagain:
                        if (IN_ENCODING && ender < 0x100)
                            goto recode_encoding;
                        break;
-                   recode_encoding:
+                     recode_encoding:
                        if (! RExC_override_recoding) {
                            SV* enc = _get_encoding();
                            ender = reg_recode((const char)(U8)ender, &enc);
@@ -12756,8 +12835,8 @@ tryagain:
                 }
            }   /* End of verifying node ends with an appropriate char */
 
-       loopdone:   /* Jumped to when encounters something that shouldn't be in
-                      the node */
+          loopdone:   /* Jumped to when encounters something that shouldn't be
+                         in the node */
 
             /* I (khw) don't know if you can get here with zero length, but the
              * old code handled this situation by creating a zero-length EXACT
@@ -13225,7 +13304,7 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist,
             RExC_parse++;
         }
 
-        no_close:
+      no_close:
         FAIL("Syntax error in (?[...])");
     }
 
@@ -13888,6 +13967,9 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth,
        const char *s = RExC_parse;
        const char  c = *s++;
 
+        if (*s == '^') {
+            s++;
+        }
        while (isWORDCHAR(*s))
            s++;
        if (*s && c == *s && s[1] == ']') {
@@ -13923,7 +14005,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth,
             break;
         }
 
-    charclassloop:
+      charclassloop:
 
        namedclass = OOB_NAMEDCLASS; /* initialize as illegal */
         save_value = value;
@@ -14290,7 +14372,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth,
                        goto recode_encoding;
                    break;
                }
-           recode_encoding:
+             recode_encoding:
                if (! RExC_override_recoding) {
                    SV* enc = _get_encoding();
                    value = reg_recode((const char)(U8)value, &enc);
@@ -14918,7 +15000,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth,
 
                 /* The actual POSIXish node for all the rest depends on the
                  * charset modifier.  The ones in the first set depend only on
-                 * ASCII or, if available on this platform, locale */
+                 * ASCII or, if available on this platform, also locale */
                 case ANYOF_ASCII:
                 case ANYOF_NASCII:
 #ifdef HAS_ISASCII
@@ -14928,19 +15010,27 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth,
 #endif
                     goto join_posix;
 
-                case ANYOF_NCASED:
+                /* The following don't have any matches in the upper Latin1
+                 * range, hence /d is equivalent to /u for them.  Making it /u
+                 * saves some branches at runtime */
+                case ANYOF_DIGIT:
+                case ANYOF_NDIGIT:
+                case ANYOF_XDIGIT:
+                case ANYOF_NXDIGIT:
+                    if (! DEPENDS_SEMANTICS) {
+                        goto treat_as_default;
+                    }
+
+                    op = POSIXU;
+                    goto join_posix;
+
+                /* The following change to CASED under /i */
                 case ANYOF_LOWER:
                 case ANYOF_NLOWER:
                 case ANYOF_UPPER:
                 case ANYOF_NUPPER:
-                    /* under /a could be alpha */
                     if (FOLD) {
-                        if (ASCII_RESTRICTED) {
-                            namedclass = ANYOF_ALPHA + (namedclass % 2);
-                        }
-                        else if (! LOC) {
-                            break;
-                        }
+                        namedclass = ANYOF_CASED + (namedclass % 2);
                     }
                     /* FALLTHROUGH */
 
@@ -14948,12 +15038,13 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth,
                  * We take advantage of the enum ordering of the charset
                  * modifiers to get the exact node type, */
                 default:
+                  treat_as_default:
                     op = POSIXD + get_regex_charset(RExC_flags);
                     if (op > POSIXA) { /* /aa is same as /a */
                         op = POSIXA;
                     }
 
-                join_posix:
+                  join_posix:
                     /* The odd numbered ones are the complements of the
                      * next-lower even number one */
                     if (namedclass % 2 == 1) {
@@ -14996,7 +15087,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth,
                 if (prevvalue == 'A') {
                     if (value == 'Z'
 #ifdef EBCDIC
-                        && ! non_portable_end_point
+                        && ! non_portable_endpoint
 #endif
                     ) {
                         arg = (FOLD) ? _CC_ALPHA : _CC_UPPER;
@@ -15006,7 +15097,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth,
                 else if (prevvalue == 'a') {
                     if (value == 'z'
 #ifdef EBCDIC
-                        && ! non_portable_end_point
+                        && ! non_portable_endpoint
 #endif
                     ) {
                         arg = (FOLD) ? _CC_ALPHA : _CC_LOWER;
@@ -15381,6 +15472,8 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth,
     }
 
     if (ret_invlist) {
+        assert(cp_list);
+
         *ret_invlist = cp_list;
         SvREFCNT_dec(swash);
 
@@ -16670,7 +16763,7 @@ Perl_regprop(pTHX_ const regexp *prog, SV *sv, const regnode *o, const regmatch_
                         sv_catpv(sv, t);
                     }
 
-                out_dump:
+                  out_dump:
 
                     Safefree(origs);
                     SvREFCNT_dec_NN(lv);
@@ -16718,6 +16811,16 @@ Perl_regprop(pTHX_ const regexp *prog, SV *sv, const regnode *o, const regmatch_
             Perl_sv_catpvf(aTHX_ sv, "[illegal type=%d])", index);
         }
     }
+    else if (k == BOUND || k == NBOUND) {
+        /* Must be synced with order of 'bound_type' in regcomp.h */
+        const char * const bounds[] = {
+            "",      /* Traditional */
+            "{gcb}",
+            "{sb}",
+            "{wb}"
+        };
+        sv_catpv(sv, bounds[FLAGS(o)]);
+    }
     else if (k == BRANCHJ && (OP(o) == UNLESSM || OP(o) == IFMATCH))
        Perl_sv_catpvf(aTHX_ sv, "[%d]", -(o->flags));
     else if (OP(o) == SBOL)
index a111893..ebcf2fb 100644 (file)
--- a/regcomp.h
+++ b/regcomp.h
@@ -232,7 +232,7 @@ struct regnode_charclass_class {
  * extra SV*, used only during its construction and which is not used by
  * regexec.c.  Note that the 'next_off' field is unused, as the SSC stands
  * alone, so there is never a next node.  Also, there is no alignment issue,
- * becase these are declared or allocated as a complete unit so the compiler
+ * because these are declared or allocated as a complete unit so the compiler
  * takes care of alignment.  This is unlike the other regnodes which are
  * allocated in terms of multiples of a single-argument regnode.  SSC nodes can
  * have a pointer field because there is no alignment issue, and because it is
@@ -243,7 +243,7 @@ struct regnode_ssc {
     U16 next_off;
     U32 arg1;
     char bitmap[ANYOF_BITMAP_SIZE];    /* both compile-time ... */
-    U32 classflags;                    /* and run-time */
+    U32 classflags;                    /* ... and run-time */
 
     /* Auxiliary, only used during construction; NULL afterwards: list of code
      * points matched */
@@ -993,6 +993,13 @@ re.pm, especially to the documentation.
 
 #endif /* DEBUG RELATED DEFINES */
 
+typedef enum {
+       TRADITIONAL_BOUND = _CC_WORDCHAR,
+       GCB_BOUND,
+       SB_BOUND,
+       WB_BOUND
+} bound_type;
+
 /*
  * Local variables:
  * c-indentation-style: bsd
index c20c5aa..7daa241 100644 (file)
@@ -43,15 +43,15 @@ GPOS        GPOS,       no        ; Matches where last m//g left off.
 # in regcomp.c uses the enum value of the modifier as an offset from the /d
 # version.  The complements must come after the non-complements.
 # BOUND, POSIX and their complements are affected, as well as EXACTF.
-BOUND       BOUND,      no        ; Match "" at any word boundary using native charset rules for non-utf8
-BOUNDL      BOUND,      no        ; Match "" at any locale word boundary
-BOUNDU      BOUND,      no        ; Match "" at any word boundary using Unicode rules
-BOUNDA      BOUND,      no         ; Match "" at any word boundary using ASCII rules
+BOUND       BOUND,      no        ; Match "" at any word boundary using native charset rules for non-utf8, otherwise Unicode rules
+BOUNDL      BOUND,      no        ; Match "" at any boundary of a given type using locale rules
+BOUNDU      BOUND,      no        ; Match "" at any boundary of a given type using Unicode rules
+BOUNDA      BOUND,      no        ; Match "" at any boundary of a given type using ASCII rules
 # All NBOUND nodes are required by code in regexec.c to be greater than all BOUND ones
-NBOUND      NBOUND,     no        ; Match "" at any word non-boundary using native charset rules for non-utf8
-NBOUNDL     NBOUND,     no        ; Match "" at any locale word non-boundary
-NBOUNDU     NBOUND,     no        ; Match "" at any word non-boundary using Unicode rules
-NBOUNDA     NBOUND,     no        ; Match "" at any word non-boundary using ASCII rules
+NBOUND      NBOUND,     no        ; Match "" at any word non-boundary using native charset rules for non-utf8, otherwise Unicode rules
+NBOUNDL     NBOUND,     no        ; Match "" at any boundary of a given type using locale rules
+NBOUNDU     NBOUND,     no        ; Match "" at any boundary of a given type using using Unicode rules
+NBOUNDA     NBOUND,     no        ; Match "" at any boundary of a given type using using ASCII rules
 
 #* [Special] alternatives:
 REG_ANY     REG_ANY,    no 0 S    ; Match any one character (except newline).
index 4ee27a0..9696560 100644 (file)
@@ -244,9 +244,9 @@ sub _UTF_START_MARK($) {
 
 sub cp_2_utfbytes($$) {
     # Returns a string consisting of the UTF-EBCDIC for the code page given by
-    # the first parameter and the code point within it given by the 2nd, using
-    # the UTF-MOD algorithm published in TR16.  (If the "code page" is ASCII,
-    # straight UTF-8 is returned.)
+    # the 2nd parameter, of the Unicode code point given by the first
+    # parameter, using the UTF-MOD algorithm published in TR16.  (If the "code
+    # page" is ASCII, straight UTF-8 is returned.)
 
     my ($ucp, $charset) = @_;
 
index 0d41d3b..6733e3c 100755 (executable)
@@ -25,6 +25,7 @@ my %feature = (
     say             => 'say',
     state           => 'state',
     switch          => 'switch',
+    bitwise         => 'bitwise',
     evalbytes       => 'evalbytes',
     postderef       => 'postderef',
     array_base      => 'arybase',
@@ -364,7 +365,7 @@ read_only_bottom_close_and_rename($h);
 __END__
 package feature;
 
-our $VERSION = '1.39';
+our $VERSION = '1.40';
 
 FEATURES
 
@@ -634,6 +635,24 @@ See L<perlref/Assigning to References> for details.
 
 This feature is available from Perl 5.22 onwards.
 
+=head2 The 'bitwise' feature
+
+B<WARNING>: This feature is still experimental and the implementation may
+change in future versions of Perl.  For this reason, Perl will
+warn when you use the feature, unless you have explicitly disabled the
+warning:
+
+    no warnings "experimental::bitwise";
+
+This makes the four standard bitwise operators (C<& | ^ ~>) treat their
+operands consistently as numbers, and introduces four new dotted operators
+(C<&. |. ^. ~.>) that treat their operands consistently as strings.  The
+same applies to the assignment variants (C<&= |= ^= &.= |.= ^.=>).
+
+See L<perlop/Bitwise String Operators> for details.
+
+This feature is available from Perl 5.22 onwards.
+
 =head1 FEATURE BUNDLES
 
 It's possible to load multiple features together, using
index 9dcc8c3..93bdc29 100644 (file)
@@ -2,7 +2,12 @@
 use 5.015;
 use strict;
 use warnings;
-use Unicode::UCD qw(prop_invlist prop_invmap);
+use Unicode::UCD qw(prop_aliases
+                    prop_values
+                    prop_value_aliases
+                    prop_invlist
+                    prop_invmap search_invlist
+                   );
 require 'regen/regen_lib.pl';
 require 'regen/charset_translations.pl';
 
@@ -16,22 +21,90 @@ require 'regen/charset_translations.pl';
 # in the headers is used to minimize the possibility of things getting
 # out-of-sync, or the wrong data structure being passed.  Currently that
 # random number is:
+
+# charclass_invlists.h now also has a partial implementation of inversion
+# maps; enough to generate tables for the line break properties, such as GCB
+
 my $VERSION_DATA_STRUCTURE_TYPE = 148565664;
 
+# integer or float
+my $numeric_re = qr/ ^ -? \d+ (:? \. \d+ )? $ /ax;
+
+# Matches valid C language enum names: begins with ASCII alphabetic, then any
+# ASCII \w
+my $enum_name_re = qr / ^ [[:alpha:]] \w* $ /ax;
+
 my $out_fh = open_new('charclass_invlists.h', '>',
                      {style => '*', by => $0,
                       from => "Unicode::UCD"});
 
-my $is_in_ifndef_ext_re = 0;
+my $in_file_pound_if = 0;
 
 print $out_fh "/* See the generating file for comments */\n\n";
 
-my %include_in_ext_re = ( NonL1_Perl_Non_Final_Folds => 1 );
+# The symbols generated by this program are all currently defined only in a
+# single dot c each.  The code knows where most of them go, but this hash
+# gives overrides for the exceptions to the typical place
+my %exceptions_to_where_to_define =
+                        ( NonL1_Perl_Non_Final_Folds => 'PERL_IN_REGCOMP_C',
+                          AboveLatin1                => 'PERL_IN_REGCOMP_C',
+                          Latin1                     => 'PERL_IN_REGCOMP_C',
+                          UpperLatin1                => 'PERL_IN_REGCOMP_C',
+                          _Perl_Any_Folds            => 'PERL_IN_REGCOMP_C',
+                          _Perl_Folds_To_Multi_Char  => 'PERL_IN_REGCOMP_C',
+                          _Perl_IDCont               => 'PERL_IN_UTF8_C',
+                          _Perl_IDStart              => 'PERL_IN_UTF8_C',
+                        );
+
+my @a2n;
+
+sub uniques {
+    # Returns non-duplicated input values.  From "Perl Best Practices:
+    # Encapsulated Cleverness".  p. 455 in first edition.
+
+    my %seen;
+    return grep { ! $seen{$_}++ } @_;
+}
+
+sub a2n($) {
+    my $cp = shift;
+
+    # Returns the input Unicode code point translated to native.
+
+    return $cp if $cp !~ $numeric_re || $cp > 255;
+    return $a2n[$cp];
+}
+
+sub end_file_pound_if {
+    if ($in_file_pound_if) {
+        print $out_fh "\n#endif\t/* $in_file_pound_if */\n";
+        $in_file_pound_if = 0;
+    }
+}
+
+sub switch_pound_if ($$) {
+    my $name = shift;
+    my $new_pound_if = shift;
+
+    # Switch to new #if given by the 2nd argument.  If there is an override
+    # for this, it instead switches to that.  The 1st argument is the
+    # static's name, used to look up the overrides
+
+    if (exists $exceptions_to_where_to_define{$name}) {
+        $new_pound_if = $exceptions_to_where_to_define{$name};
+    }
+
+    # Exit current #if if the new one is different from the old
+    if ($in_file_pound_if
+        && $in_file_pound_if !~ /$new_pound_if/)
+    {
+        end_file_pound_if;
+    }
 
-sub end_ifndef_ext_re {
-    if ($is_in_ifndef_ext_re) {
-        print $out_fh "\n#endif\t/* #ifndef PERL_IN_XSUB_RE */\n";
-        $is_in_ifndef_ext_re = 0;
+    # Enter new #if, if not already in it.
+    if (! $in_file_pound_if) {
+        $in_file_pound_if = "defined($new_pound_if)";
+        print $out_fh "\n#if $in_file_pound_if\n";
     }
 }
 
@@ -55,15 +128,7 @@ sub output_invlist ($$;$) {
     }
     my $count = @$invlist;
 
-    if ($is_in_ifndef_ext_re) {
-        if (exists $include_in_ext_re{$name}) {
-            end_ifndef_ext_re;
-        }
-    }
-    elsif (! exists $include_in_ext_re{$name}) {
-        print $out_fh "\n#ifndef PERL_IN_XSUB_RE\n" unless exists $include_in_ext_re{$name};
-        $is_in_ifndef_ext_re = 1;
-    }
+    switch_pound_if ($name, 'PERL_IN_PERL_C');
 
     print $out_fh "\nstatic const UV ${name}_invlist[] = {";
     print $out_fh " /* for $charset */" if $charset;
@@ -77,23 +142,119 @@ sub output_invlist ($$;$) {
 
     # The main body are the UVs passed in to this routine.  Do the final
     # element separately
-    for my $i (0 .. @$invlist - 1 - 1) {
-        print $out_fh "\t$invlist->[$i],\n";
+    for my $i (0 .. @$invlist - 1) {
+        printf $out_fh "\t0x%X", $invlist->[$i];
+        print $out_fh "," if $i < @$invlist - 1;
+        print $out_fh "\n";
     }
 
-    # The final element does not have a trailing comma, as C can't handle it.
-    print $out_fh "\t$invlist->[-1]\n";
+    print $out_fh "};\n";
+}
+
+sub output_invmap ($$$$$$$) {
+    my $name = shift;
+    my $invmap = shift;     # Reference to inversion map array
+    my $prop_name = shift;
+    my $input_format = shift;   # The inversion map's format
+    my $default = shift;        # The property value for code points who
+                                # otherwise don't have a value specified.
+    my $extra_enums = shift;    # comma-separated list of our additions to the
+                                # property's standard possible values
+    my $charset = shift // "";  # name of character set for comment
+
+    # Output the inversion map $invmap for property $prop_name, but use $name
+    # as the actual data structure's name.
 
+    my $count = @$invmap;
+
+    my $output_format;
+    my $declaration_type;
+    my %enums;
+    my $name_prefix;
+
+    if ($input_format eq 's') {
+        $prop_name = (prop_aliases($prop_name))[1]; # Get full name
+            my @enums = prop_values($prop_name);
+            if (! @enums) {
+                die "Only enum properties are currently handled; '$prop_name' isn't one";
+            }
+            else {
+
+                # Convert short names to long, add in the extras, and sort.
+                @enums = map { (prop_value_aliases($prop_name, $_))[1] } @enums;
+                push @enums, split /,/, $extra_enums if $extra_enums ne "";
+                @enums = sort @enums;
+
+                # Assign a value to each element of the enum.  The default
+                # value always gets 0; the others are arbitrarily assigned.
+                my $enum_val = 0;
+                $default = prop_value_aliases($prop_name, $default);
+                $enums{$default} = $enum_val++;
+                for my $enum (@enums) {
+                    $enums{$enum} = $enum_val++ unless exists $enums{$enum};
+                }
+            }
+
+            # Inversion map stuff is currently used only by regexec
+            switch_pound_if($name, 'PERL_IN_REGEXEC_C');
+        {
+
+            my $short_name = (prop_aliases($prop_name))[0];
+
+            # The short names tend to be two lower case letters, but it looks
+            # better for those if they are upper. XXX
+            $short_name = uc($short_name) if length($short_name) < 3
+                                             || substr($short_name, 0, 1) =~ /[[:lower:]]/;
+            $name_prefix = "PL_${short_name}_";
+            my $enum_count = keys %enums;
+            print $out_fh "\n#define ${name_prefix}ENUM_COUNT ", scalar keys %enums, "\n";
+
+            print $out_fh "\ntypedef enum {\n";
+            print $out_fh "\t${name_prefix}$default = $enums{$default},\n";
+            delete $enums{$default};
+            foreach my $enum (sort { $a cmp $b } keys %enums) {
+                print $out_fh "\t${name_prefix}$enum = $enums{$enum}";
+                print $out_fh "," if $enums{$enum} < $enum_count - 1;
+                print $out_fh  "\n";
+            }
+            $declaration_type = "${name_prefix}enum";
+            print $out_fh "} $declaration_type;\n";
+
+            $output_format = "${name_prefix}%s";
+        }
+    }
+    else {
+        die "'$input_format' invmap() format for '$prop_name' unimplemented";
+    }
+
+    die "No inversion map for $prop_name" unless defined $invmap
+                                             && ref $invmap eq 'ARRAY'
+                                             && $count;
+
+    print $out_fh "\nstatic const $declaration_type ${name}_invmap[] = {";
+    print $out_fh " /* for $charset */" if $charset;
+    print $out_fh "\n";
+
+    # The main body are the scalars passed in to this routine.
+    for my $i (0 .. $count - 1) {
+        my $element = $invmap->[$i];
+        $element = $name_prefix . prop_value_aliases($prop_name, $element);
+        print $out_fh "\t$element";
+        print $out_fh "," if $i < $count - 1;
+        print $out_fh  "\n";
+    }
     print $out_fh "};\n";
 }
 
-sub mk_invlist_from_cp_list {
+sub mk_invlist_from_sorted_cp_list {
 
     # Returns an inversion list constructed from the sorted input array of
     # code points
 
     my $list_ref = shift;
 
+    return unless @$list_ref;
+
     # Initialize to just the first element
     my @invlist = ( $list_ref->[0], $list_ref->[0] + 1);
 
@@ -133,17 +294,28 @@ for my $i (0 .. @$folds_ref - 1) {
 
 sub _Perl_Non_Final_Folds {
     @is_non_final_fold = sort { $a <=> $b } @is_non_final_fold;
-    return mk_invlist_from_cp_list(\@is_non_final_fold);
+    return mk_invlist_from_sorted_cp_list(\@is_non_final_fold);
+}
+
+sub prop_name_for_cmp ($) { # Sort helper
+    my $name = shift;
+
+    # Returns the input lowercased, with non-alphas removed, as well as
+    # everything starting with a comma
+
+    $name =~ s/,.*//;
+    $name =~ s/[[:^alpha:]]//g;
+    return lc $name;
 }
 
 sub UpperLatin1 {
-    return mk_invlist_from_cp_list([ 128 .. 255 ]);
+    return mk_invlist_from_sorted_cp_list([ 128 .. 255 ]);
 }
 
 output_invlist("Latin1", [ 0, 256 ]);
 output_invlist("AboveLatin1", [ 256 ]);
 
-end_ifndef_ext_re;
+end_file_pound_if;
 
 # We construct lists for all the POSIX and backslash sequence character
 # classes in two forms:
@@ -171,32 +343,37 @@ end_ifndef_ext_re;
 for my $charset (get_supported_code_pages()) {
     print $out_fh "\n" . get_conditional_compile_line_start($charset);
 
-    my @a2n = @{get_a2n($charset)};
-    for my $prop (qw(
-                    ASCII
-                    Cased
-                    VertSpace
-                    XPerlSpace
-                    XPosixAlnum
-                    XPosixAlpha
-                    XPosixBlank
-                    XPosixCntrl
-                    XPosixDigit
-                    XPosixGraph
-                    XPosixLower
-                    XPosixPrint
-                    XPosixPunct
-                    XPosixSpace
-                    XPosixUpper
-                    XPosixWord
-                    XPosixXDigit
-                    _Perl_Any_Folds
-                    &NonL1_Perl_Non_Final_Folds
-                    _Perl_Folds_To_Multi_Char
-                    &UpperLatin1
-                    _Perl_IDStart
-                    _Perl_IDCont
-        )
+    @a2n = @{get_a2n($charset)};
+    no warnings 'qw';
+                         # Ignore non-alpha in sort
+    for my $prop (sort { prop_name_for_cmp($a) cmp prop_name_for_cmp($b) } qw(
+                             ASCII
+                             Cased
+                             VertSpace
+                             XPerlSpace
+                             XPosixAlnum
+                             XPosixAlpha
+                             XPosixBlank
+                             XPosixCntrl
+                             XPosixDigit
+                             XPosixGraph
+                             XPosixLower
+                             XPosixPrint
+                             XPosixPunct
+                             XPosixSpace
+                             XPosixUpper
+                             XPosixWord
+                             XPosixXDigit
+                             _Perl_Any_Folds
+                             &NonL1_Perl_Non_Final_Folds
+                             _Perl_Folds_To_Multi_Char
+                             &UpperLatin1
+                             _Perl_IDStart
+                             _Perl_IDCont
+                             Grapheme_Cluster_Break,EDGE
+                             Word_Break,EDGE,UNKNOWN
+                             Sentence_Break,EDGE
+                           )
     ) {
 
         # For the Latin1 properties, we change to use the eXtended version of the
@@ -214,42 +391,271 @@ for my $charset (get_supported_code_pages()) {
         # at 255, but does include the one at 256.  We don't include the 256 one.
         my $prop_name = $prop;
         my $is_local_sub = $prop_name =~ s/^&//;
+        my $extra_enums = "";
+        $extra_enums = $1 if $prop_name =~ s/, ( .* ) //x;
         my $lookup_prop = $prop_name;
         my $l1_only = ($lookup_prop =~ s/^L1Posix/XPosix/
                        or $lookup_prop =~ s/^L1//);
         my $nonl1_only = 0;
         $nonl1_only = $lookup_prop =~ s/^NonL1// unless $l1_only;
+        ($lookup_prop, my $has_suffixes) = $lookup_prop =~ / (.*) ( , .* )? /x;
 
         my @invlist;
+        my @invmap;
+        my $map_format;
+        my $map_default;
+        my $maps_to_code_point;
+        my $to_adjust;
         if ($is_local_sub) {
             @invlist = eval $lookup_prop;
         }
         else {
             @invlist = prop_invlist($lookup_prop, '_perl_core_internal_ok');
+            if (! @invlist) {
+                my ($list_ref, $map_ref, $format, $default);
+
+                ($list_ref, $map_ref, $format, $default)
+                          = prop_invmap($lookup_prop, '_perl_core_internal_ok');
+                die "Could not find inversion list for '$lookup_prop'" unless $list_ref;
+                @invlist = @$list_ref;
+                @invmap = @$map_ref;
+                $map_format = $format;
+                $map_default = $default;
+                $maps_to_code_point = $map_format =~ /x/;
+                $to_adjust = $map_format =~ /a/;
+            }
         }
         die "Could not find inversion list for '$lookup_prop'" unless @invlist;
-        my @full_list;
-        for (my $i = 0; $i < @invlist; $i += 2) {
-            my $upper = ($i + 1) < @invlist
-                        ? $invlist[$i+1] - 1      # In range
-                        : $Unicode::UCD::MAX_CP;  # To infinity.  You may want
-                                                # to stop much much earlier;
-                                                # going this high may expose
-                                                # perl deficiencies with very
-                                                # large numbers.
-            for my $j ($invlist[$i] .. $upper) {
-                if ($j < 256) {
-                    push @full_list, $a2n[$j];
+
+        # Re-order the Unicode code points to native ones for this platform.
+        # This is only needed for code points below 256, because native code
+        # points are only in that range.  For inversion maps of properties
+        # where the mappings are adjusted (format =~ /a/), this reordering
+        # could mess up the adjustment pattern that was in the input, so that
+        # has to be dealt with.
+        #
+        # And inversion maps that map to code points need to eventually have
+        # all those code points remapped to native, and it's better to do that
+        # here, going through the whole list not just those below 256.  This
+        # is because some inversion maps have adjustments (format =~ /a/)
+        # which may be affected by the reordering.  This code needs to be done
+        # both for when we are translating the inversion lists for < 256, and
+        # for the inversion maps for everything.  By doing both in this loop,
+        # we can share that code.
+        #
+        # So, we go through everything for an inversion map to code points;
+        # otherwise, we can skip any remapping at all if we are going to
+        # output only the above-Latin1 values, or if the range spans the whole
+        # of 0..256, as the remap will also include all of 0..256  (256 not
+        # 255 because a re-ordering could cause 256 to need to be in the same
+        # range as 255.)
+        if ((@invmap && $maps_to_code_point)
+            || (! $nonl1_only || ($invlist[0] < 256
+                                  && ! ($invlist[0] == 0 && $invlist[1] > 256))))
+        {
+
+            if (! @invmap) {    # Straight inversion list
+            # Look at all the ranges that start before 257.
+            my @latin1_list;
+            while (@invlist) {
+                last if $invlist[0] > 256;
+                my $upper = @invlist > 1
+                            ? $invlist[1] - 1      # In range
+
+                              # To infinity.  You may want to stop much much
+                              # earlier; going this high may expose perl
+                              # deficiencies with very large numbers.
+                            : $Unicode::UCD::MAX_CP;
+                for my $j ($invlist[0] .. $upper) {
+                    push @latin1_list, a2n($j);
                 }
-                else {
-                    push @full_list, $j;
+
+                shift @invlist; # Shift off the range that's in the list
+                shift @invlist; # Shift off the range not in the list
+            }
+
+            # Here @invlist contains all the ranges in the original that start
+            # at code points above 256, and @latin1_list contains all the
+            # native code points for ranges that start with a Unicode code
+            # point below 257.  We sort the latter and convert it to inversion
+            # list format.  Then simply prepend it to the list of the higher
+            # code points.
+            @latin1_list = sort { $a <=> $b } @latin1_list;
+            @latin1_list = mk_invlist_from_sorted_cp_list(\@latin1_list);
+            unshift @invlist, @latin1_list;
+            }
+            else {  # Is an inversion map
+
+                # This is a similar procedure as plain inversion list, but has
+                # multiple buckets.  A plain inversion list just has two
+                # buckets, 1) 'in' the list; and 2) 'not' in the list, and we
+                # pretty much can ignore the 2nd bucket, as it is completely
+                # defined by the 1st.  But here, what we do is create buckets
+                # which contain the code points that map to each, translated
+                # to native and turned into an inversion list.  Thus each
+                # bucket is an inversion list of native code points that map
+                # to it or don't map to it.  We use these to create an
+                # inversion map for the whole property.
+
+                # As mentioned earlier, we use this procedure to not just
+                # remap the inversion list to native values, but also the maps
+                # of code points to native ones.  In the latter case we have
+                # to look at the whole of the inversion map (or at least to
+                # above Unicode; as the maps of code points above that should
+                # all be to the default).
+                my $upper_limit = ($maps_to_code_point) ? 0x10FFFF : 256;
+
+                my %mapped_lists;   # A hash whose keys are the buckets.
+                while (@invlist) {
+                    last if $invlist[0] > $upper_limit;
+
+                    # This shouldn't actually happen, as prop_invmap() returns
+                    # an extra element at the end that is beyond $upper_limit
+                    die "inversion map that extends to infinity is unimplemented" unless @invlist > 1;
+
+                    my $bucket;
+
+                    # A hash key can't be a ref (we are only expecting arrays
+                    # of scalars here), so convert any such to a string that
+                    # will be converted back later (using a vertical tab as
+                    # the separator).  Even if the mapping is to code points,
+                    # we don't translate to native here because the code
+                    # output_map() calls to output these arrays assumes the
+                    # input is Unicode, not native.
+                    if (ref $invmap[0]) {
+                        $bucket = join "\cK", @{$invmap[0]};
+                    }
+                    elsif ($maps_to_code_point && $invmap[0] =~ $numeric_re) {
+
+                        # Do convert to native for maps to single code points.
+                        # There are some properties that have a few outlier
+                        # maps that aren't code points, so the above test
+                        # skips those.
+                        $bucket = a2n($invmap[0]);
+                    } else {
+                        $bucket = $invmap[0];
+                    }
+
+                    # We now have the bucket that all code points in the range
+                    # map to, though possibly they need to be adjusted.  Go
+                    # through the range and put each translated code point in
+                    # it into its bucket.
+                    my $base_map = $invmap[0];
+                    for my $j ($invlist[0] .. $invlist[1] - 1) {
+                        if ($to_adjust
+                               # The 1st code point doesn't need adjusting
+                            && $j > $invlist[0]
+
+                               # Skip any non-numeric maps: these are outliers
+                               # that aren't code points.
+                            && $base_map =~ $numeric_re
+
+                               #  'ne' because the default can be a string
+                            && $base_map ne $map_default)
+                        {
+                            # We adjust, by incrementing each the bucket and
+                            # the map.  For code point maps, translate to
+                            # native
+                            $base_map++;
+                            $bucket = ($maps_to_code_point)
+                                      ? a2n($base_map)
+                                      : $base_map;
+                        }
+
+                        # Add the native code point to the bucket for the
+                        # current map
+                        push @{$mapped_lists{$bucket}}, a2n($j);
+                    } # End of loop through all code points in the range
+
+                    # Get ready for the next range
+                    shift @invlist;
+                    shift @invmap;
+                } # End of loop through all ranges in the map.
+
+                # Here, @invlist and @invmap retain all the ranges from the
+                # originals that start with code points above $upper_limit.
+                # Each bucket in %mapped_lists contains all the code points
+                # that map to that bucket.  If the bucket is for a map to a
+                # single code point is a single code point, the bucket has
+                # been converted to native.  If something else (including
+                # multiple code points), no conversion is done.
+                #
+                # Now we recreate the inversion map into %xlated, but this
+                # time for the native character set.
+                my %xlated;
+                foreach my $bucket (keys %mapped_lists) {
+
+                    # Sort and convert this bucket to an inversion list.  The
+                    # result will be that ranges that start with even-numbered
+                    # indexes will be for code points that map to this bucket;
+                    # odd ones map to some other bucket, and are discarded
+                    # below.
+                    @{$mapped_lists{$bucket}}
+                                    = sort{ $a <=> $b} @{$mapped_lists{$bucket}};
+                    @{$mapped_lists{$bucket}}
+                     = mk_invlist_from_sorted_cp_list(\@{$mapped_lists{$bucket}});
+
+                    # Add each even-numbered range in the bucket to %xlated;
+                    # so that the keys of %xlated become the range start code
+                    # points, and the values are their corresponding maps.
+                    while (@{$mapped_lists{$bucket}}) {
+                        my $range_start = $mapped_lists{$bucket}->[0];
+                        if ($bucket =~ /\cK/) {
+                            @{$xlated{$range_start}} = split /\cK/, $bucket;
+                        }
+                        else {
+                            $xlated{$range_start} = $bucket;
+                        }
+                        shift @{$mapped_lists{$bucket}}; # Discard odd ranges
+                        shift @{$mapped_lists{$bucket}}; # Get ready for next
+                                                         # iteration
+                    }
+                } # End of loop through all the buckets.
+
+                # Here %xlated's keys are the range starts of all the code
+                # points in the inversion map.  Construct an inversion list
+                # from them.
+                my @new_invlist = sort { $a <=> $b } keys %xlated;
+
+                # If the list is adjusted, we want to munge this list so that
+                # we only have one entry for where consecutive code points map
+                # to consecutive values.  We just skip the subsequent entries
+                # where this is the case.
+                if ($to_adjust) {
+                    my @temp;
+                    for my $i (0 .. @new_invlist - 1) {
+                        next if $i > 0
+                                && $new_invlist[$i-1] + 1 == $new_invlist[$i]
+                                && $xlated{$new_invlist[$i-1]} =~ $numeric_re
+                                && $xlated{$new_invlist[$i]} =~ $numeric_re
+                                && $xlated{$new_invlist[$i-1]} + 1 == $xlated{$new_invlist[$i]};
+                        push @temp, $new_invlist[$i];
+                    }
+                    @new_invlist = @temp;
+                }
+
+                # The inversion map comes from %xlated's values.  We can
+                # unshift each onto the front of the untouched portion, in
+                # reverse order of the portion we did process.
+                foreach my $start (reverse @new_invlist) {
+                    unshift @invmap, $xlated{$start};
                 }
+
+                # Finally prepend the inversion list we have just constructed to the
+                # one that contains anything we didn't process.
+                unshift @invlist, @new_invlist;
             }
         }
-        @full_list = sort { $a <=> $b } @full_list;
-        @invlist = mk_invlist_from_cp_list(\@full_list);
+
+        # prop_invmap() returns an extra final entry, which we can now
+        # discard.
+        if (@invmap) {
+            pop @invlist;
+            pop @invmap;
+        }
 
         if ($l1_only) {
+            die "Unimplemented to do a Latin-1 only inversion map" if @invmap;
             for my $i (0 .. @invlist - 1 - 1) {
                 if ($invlist[$i] > 255) {
 
@@ -268,6 +674,7 @@ for my $charset (get_supported_code_pages()) {
 
                     # Remove everything past this.
                     splice @invlist, $i;
+                    splice @invmap, $i if @invmap;
                     last;
                 }
             }
@@ -280,11 +687,16 @@ for my $charset (get_supported_code_pages()) {
                 # Here, we have the first element in the array that indicates an
                 # element above Latin1.  Get rid of all previous ones.
                 splice @invlist, 0, $i;
+                splice @invmap, 0, $i if @invmap;
 
                 # If this one's index is not divisible by 2, it means that this
                 # element is inverting away from being in the list, which means
-                # all code points from 256 to this one are in this list.
-                unshift @invlist, 256 if $i % 2 != 0;
+                # all code points from 256 to this one are in this list (or
+                # map to the default for inversion maps)
+                if ($i % 2 != 0) {
+                    unshift @invlist, 256;
+                    unshift @invmap, $map_default if @invmap;
+                }
                 $found_nonl1 = 1;
                 last;
             }
@@ -292,8 +704,9 @@ for my $charset (get_supported_code_pages()) {
         }
 
         output_invlist($prop_name, \@invlist, $charset);
+        output_invmap($prop_name, \@invmap, $lookup_prop, $map_format, $map_default, $extra_enums, $charset) if @invmap;
     }
-    end_ifndef_ext_re;
+    end_file_pound_if;
     print $out_fh "\n" . get_conditional_compile_line_end();
 }
 
index 9cb1206..e47f5d3 100644 (file)
@@ -35,6 +35,7 @@ bit bit field. Here's a general example:
 
     addbits('aelem',
             7 => qw(OPpLVAL_INTRO LVINTRO),
+            6 => qw(OPpLVAL_DEFER LVDEFER),
        '4..5' =>  {
                        mask_def  => 'OPpDEREF',
                        enum => [ qw(
@@ -43,10 +44,9 @@ bit bit field. Here's a general example:
                                    3   OPpDEREF_SV   DREFSV
                                )],
                    },
-            6 => qw(OPpLVAL_DEFER LVDEFER),
     );
 
-Here for the op C<aelem>, bits 4 and 7 (bits are numbered 0..7) are
+Here for the op C<aelem>, bits 6 and 7 (bits are numbered 0..7) are
 defined as single-bit flags. The first string following the bit number is
 the define name that gets emitted in F<opcode.h>, and the second string is
 the label, which will be displayed by F<Concise.pm> and Perl_do_op_dump()
@@ -202,6 +202,9 @@ use strict;
 
     $args1{$_} = 1 for (
                         qw(reverse), # ck_fun(), but most bits stolen
+                        qw(mapstart grepstart), # set in ck_fun, but
+                                                # cleared in ck_grep,
+                                                # unless there is an error
                         grep !$maxarg{$_} && !$args0{$_},
                             ops_with_flag('1'), # UNOP
                             ops_with_flag('+'), # UNOP_AUX
index 327e45e..fe10584 100755 (executable)
@@ -122,6 +122,8 @@ my @raw_alias = (
                 Perl_pp_shift => ['pop'],
                 Perl_pp_sin => [qw(cos exp log sqrt)],
                 Perl_pp_bit_or => ['bit_xor'],
+                Perl_pp_nbit_or => ['nbit_xor'],
+                Perl_pp_sbit_or => ['sbit_xor'],
                 Perl_pp_rv2av => ['rv2hv'],
                 Perl_pp_akeys => ['avalues'],
                 Perl_pp_rkeys => [qw(rvalues reach)],
@@ -1134,6 +1136,7 @@ my %OP_IS_FILETEST;       # /F-/
 my %OP_IS_FT_ACCESS;   # /F-+/
 my %OP_IS_NUMCOMPARE;  # /S</
 my %OP_IS_DIRHOP;      # /Fd/
+my %OP_IS_INFIX_BIT;   # /S\|/
 
 my $OCSHIFT = 8;
 my $OASHIFT = 12;
@@ -1163,8 +1166,9 @@ for my $op (@ops) {
            $OP_IS_FILETEST{$op} = $opnum{$op} if $arg =~ s/-//;
            $OP_IS_FT_ACCESS{$op} = $opnum{$op} if $arg =~ s/\+//;
         }
-       elsif ($arg =~ /^S</) {
+       elsif ($arg =~ /^S./) {
            $OP_IS_NUMCOMPARE{$op} = $opnum{$op} if $arg =~ s/<//;
+           $OP_IS_INFIX_BIT {$op} = $opnum{$op} if $arg =~ s/\|//;
        }
        my $argnum = ($arg =~ s/\?//) ? 8 : 0;
         die "op = $op, arg = $arg\n"
@@ -1204,6 +1208,7 @@ gen_op_is_macro( \%OP_IS_FILETEST, 'OP_IS_FILETEST');
 gen_op_is_macro( \%OP_IS_FT_ACCESS, 'OP_IS_FILETEST_ACCESS');
 gen_op_is_macro( \%OP_IS_NUMCOMPARE, 'OP_IS_NUMCOMPARE');
 gen_op_is_macro( \%OP_IS_DIRHOP, 'OP_IS_DIRHOP');
+gen_op_is_macro( \%OP_IS_INFIX_BIT, 'OP_IS_INFIX_BIT');
 
 sub gen_op_is_macro {
     my ($op_is, $macname) = @_;
index 3061d33..8bbd557 100644 (file)
@@ -31,7 +31,7 @@
 # scalar      - S            list     - L            array     - A
 # hash        - H            sub (CV) - C            file      - F
 # socket      - Fs           filetest - F-           filetest_access - F-+
-# num-compare - S<           dirhandle - DF
+# num-compare - S<           dirhandle - DF          infix bitwise   - S|
 
 # reference - R
 # "?" denotes an optional operand.
@@ -162,14 +162,24 @@ seq               string eq               ck_null         ifs2    S S
 sne            string ne               ck_null         ifs2    S S
 scmp           string comparison (cmp) ck_null         ifsT2   S S
 
-bit_and                bitwise and (&)         ck_bitop        fst2    S S
-bit_xor                bitwise xor (^)         ck_bitop        fst2    S S
-bit_or         bitwise or (|)          ck_bitop        fst2    S S
+bit_and                bitwise and (&)         ck_bitop        fst2    S S|
+bit_xor                bitwise xor (^)         ck_bitop        fst2    S S|
+bit_or         bitwise or (|)          ck_bitop        fst2    S S|
+nbit_and       numeric bitiwse and (&) ck_bitop        fsT2    S S|
+nbit_xor       numeric bitwise xor (^) ck_bitop        fsT2    S S|
+nbit_or                numeric bitwise or (|)  ck_bitop        fsT2    S S|
+sbit_and       string bitiwse and (&)  ck_bitop        fst2    S S|
+sbit_xor       string bitwise xor (^)  ck_bitop        fst2    S S|
+sbit_or                string bitwise or (|)   ck_bitop        fst2    S S|
 
 negate         negation (-)            ck_null         Ifst1   S
 i_negate       integer negation (-)    ck_null         ifst1   S
 not            not                     ck_null         ifs1    S
 complement     1's complement (~)      ck_bitop        fsT1    S
+ncomplement    numeric 1's complement (~)      ck_bitop        fsT1    S
+# scomplement uses ck_bitop only for the experimental warning.  Once the
+# warning is gone, this can change to ck_null.
+scomplement    string 1's complement (~)       ck_bitop        fsT1    S
 
 smartmatch     smart match             ck_smartmatch   s2
 
index 6d9e04d..165e1c1 100644 (file)
@@ -178,13 +178,20 @@ rshift            (>>
 rshift_ass     (>>=
 band           (&
 band_ass       (&=
+sband          (&.
+sband_ass      (&.=
 bor            (|
 bor_ass                (|=
+sbor           (|.
+sbor_ass       (|.=
 bxor           (^
 bxor_ass       (^=
+sbxor          (^.
+sbxor_ass      (^.=
 ncmp           (<=>
 scmp           (cmp
 compl          (~
+scompl         (~.
 atan2          (atan2
 cos            (cos
 sin            (sin
index cd19563..9a83e54 100755 (executable)
@@ -1613,34 +1613,6 @@ SURROGATE: Surrogate characters
 => UTF8 :fast
 \p{Gc=Cs}
 
-GCB_L: Grapheme_Cluster_Break=L
-=> UTF8 :fast
-\p{_X_GCB_L}
-
-GCB_LV_LVT_V: Grapheme_Cluster_Break=(LV or LVT or V)
-=> UTF8 :fast
-\p{_X_LV_LVT_V}
-
-GCB_Prepend: Grapheme_Cluster_Break=Prepend
-=> UTF8 :fast
-\p{_X_GCB_Prepend}
-
-GCB_RI: Grapheme_Cluster_Break=RI
-=> UTF8 :fast
-\p{_X_RI}
-
-GCB_SPECIAL_BEGIN_START: Grapheme_Cluster_Break=special_begin_starts
-=> UTF8 :fast
-\p{_X_Special_Begin_Start}
-
-GCB_T: Grapheme_Cluster_Break=T
-=> UTF8 :fast
-\p{_X_GCB_T}
-
-GCB_V: Grapheme_Cluster_Break=V
-=> UTF8 :fast
-\p{_X_GCB_V}
-
 # This program was run with this enabled, and the results copied to utf8.h;
 # then this was commented out because it takes so long to figure out these 2
 # million code points.  The results would not change unless utf8.h decides it
index 463b5cd..abeecba 100644 (file)
@@ -67,7 +67,7 @@ sub close_and_rename {
     close $fh or die "Error closing $name: $!";
 
     if ($TAP) {
-        # Don't use compare beacuse if there are errors it doesn't give any
+        # Don't use compare because if there are errors it doesn't give any
         # way to generate diagnostics about what went wrong.
         # These files are small enough to read into memory.
         local $/;
index e53059d..be6466a 100644 (file)
@@ -28,102 +28,94 @@ sub DEFAULT_ON  () { 1 }
 sub DEFAULT_OFF () { 2 }
 
 my $tree = {
-'everything' => [ 5.021, {
-        'all' => [ 5.008, {
-                'io'            => [ 5.008, {
-                                        'pipe'          => [ 5.008, DEFAULT_OFF],
-                                        'unopened'      => [ 5.008, DEFAULT_OFF],
-                                        'closed'        => [ 5.008, DEFAULT_OFF],
-                                        'newline'       => [ 5.008, DEFAULT_OFF],
-                                        'exec'          => [ 5.008, DEFAULT_OFF],
-                                        'layer'         => [ 5.008, DEFAULT_OFF],
-                                        'syscalls'      => [ 5.019, DEFAULT_OFF],
-                                   }],
-                'syntax'        => [ 5.008, {
-                                        'ambiguous'     => [ 5.008, DEFAULT_OFF],
-                                        'semicolon'     => [ 5.008, DEFAULT_OFF],
-                                        'precedence'    => [ 5.008, DEFAULT_OFF],
-                                        'bareword'      => [ 5.008, DEFAULT_OFF],
-                                        'reserved'      => [ 5.008, DEFAULT_OFF],
-                                        'digit'         => [ 5.008, DEFAULT_OFF],
-                                        'parenthesis'   => [ 5.008, DEFAULT_OFF],
-                                        'printf'        => [ 5.008, DEFAULT_OFF],
-                                        'prototype'     => [ 5.008, DEFAULT_OFF],
-                                        'qw'            => [ 5.008, DEFAULT_OFF],
-                                        'illegalproto'  => [ 5.011, DEFAULT_OFF],
-                                   }],
-                'severe'        => [ 5.008, {
-                                        'inplace'       => [ 5.008, DEFAULT_ON],
-                                        'internal'      => [ 5.008, DEFAULT_OFF],
-                                        'debugging'     => [ 5.008, DEFAULT_ON],
-                                        'malloc'        => [ 5.008, DEFAULT_ON],
-                                   }],
-                'deprecated'    => [ 5.008, DEFAULT_ON],
-                'void'          => [ 5.008, DEFAULT_OFF],
-                'recursion'     => [ 5.008, DEFAULT_OFF],
-                'redefine'      => [ 5.008, DEFAULT_OFF],
-                'numeric'       => [ 5.008, DEFAULT_OFF],
-                'uninitialized' => [ 5.008, DEFAULT_OFF],
-                'once'          => [ 5.008, DEFAULT_OFF],
-                'misc'          => [ 5.008, DEFAULT_OFF],
-                'regexp'        => [ 5.008, DEFAULT_OFF],
-                'glob'          => [ 5.008, DEFAULT_ON],
-                'untie'         => [ 5.008, DEFAULT_OFF],
-                'substr'        => [ 5.008, DEFAULT_OFF],
-                'taint'         => [ 5.008, DEFAULT_OFF],
-                'signal'        => [ 5.008, DEFAULT_OFF],
-                'closure'       => [ 5.008, DEFAULT_OFF],
-                'overflow'      => [ 5.008, DEFAULT_OFF],
-                'portable'      => [ 5.008, DEFAULT_OFF],
-                'utf8'          => [ 5.008, {
-                                        'surrogate' => [ 5.013, DEFAULT_OFF],
-                                        'nonchar' => [ 5.013, DEFAULT_OFF],
-                                        'non_unicode' => [ 5.013, DEFAULT_OFF],
-                                }],
-                'exiting'       => [ 5.008, DEFAULT_OFF],
-                'pack'          => [ 5.008, DEFAULT_OFF],
-                'unpack'        => [ 5.008, DEFAULT_OFF],
-                'threads'       => [ 5.008, DEFAULT_OFF],
-                'imprecision'   => [ 5.011, DEFAULT_OFF],
-                'experimental'  => [ 5.017, {
-                                        'experimental::lexical_subs' =>
-                                            [ 5.017, DEFAULT_ON ],
-                                        'experimental::regex_sets' =>
-                                            [ 5.017, DEFAULT_ON ],
-                                        'experimental::lexical_topic' =>
-                                            [ 5.017, DEFAULT_ON ],
-                                        'experimental::smartmatch' =>
-                                            [ 5.017, DEFAULT_ON ],
-                                        'experimental::postderef' =>
-                                            [ 5.019, DEFAULT_ON ],
-                                        'experimental::autoderef' =>
-                                            [ 5.019, DEFAULT_ON ],
-                                        'experimental::signatures' =>
-                                            [ 5.019, DEFAULT_ON ],
-                                        'experimental::win32_perlio' =>
-                                            [ 5.021, DEFAULT_ON ],
-                                        'experimental::refaliasing' =>
-                                            [ 5.021, DEFAULT_ON ],
-                                        'experimental::re_strict' =>
-                                            [ 5.021, DEFAULT_ON ],
-                                        'experimental::const_attr' =>
-                                            [ 5.021, DEFAULT_ON ],
-                                }],
-
-                'missing'       => [ 5.021, DEFAULT_OFF],
-                'redundant'     => [ 5.021, DEFAULT_OFF],
-                'locale'        => [ 5.021, DEFAULT_ON],
-
-                 #'default'     => [ 5.008, DEFAULT_ON ],
-        }],
-
-        # When adding new warnings outside of "all" make sure to
-        # either patch util.c to ignore them under -w and -W, or to
-        # generalize the facility for adding them so that it knows
-        # about warnings outside of "all".
-        'extra' => [ 5.021, {
-                'void_unusual'     => [ 5.021, DEFAULT_OFF],
-        }],
+'all' => [ 5.008, {
+        'io'            => [ 5.008, {
+                                'pipe'          => [ 5.008, DEFAULT_OFF],
+                                'unopened'      => [ 5.008, DEFAULT_OFF],
+                                'closed'        => [ 5.008, DEFAULT_OFF],
+                                'newline'       => [ 5.008, DEFAULT_OFF],
+                                'exec'          => [ 5.008, DEFAULT_OFF],
+                                'layer'         => [ 5.008, DEFAULT_OFF],
+                                'syscalls'      => [ 5.019, DEFAULT_OFF],
+                           }],
+        'syntax'        => [ 5.008, {
+                                'ambiguous'     => [ 5.008, DEFAULT_OFF],
+                                'semicolon'     => [ 5.008, DEFAULT_OFF],
+                                'precedence'    => [ 5.008, DEFAULT_OFF],
+                                'bareword'      => [ 5.008, DEFAULT_OFF],
+                                'reserved'      => [ 5.008, DEFAULT_OFF],
+                                'digit'         => [ 5.008, DEFAULT_OFF],
+                                'parenthesis'   => [ 5.008, DEFAULT_OFF],
+                                'printf'        => [ 5.008, DEFAULT_OFF],
+                                'prototype'     => [ 5.008, DEFAULT_OFF],
+                                'qw'            => [ 5.008, DEFAULT_OFF],
+                                'illegalproto'  => [ 5.011, DEFAULT_OFF],
+                           }],
+        'severe'        => [ 5.008, {
+                                'inplace'       => [ 5.008, DEFAULT_ON],
+                                'internal'      => [ 5.008, DEFAULT_OFF],
+                                'debugging'     => [ 5.008, DEFAULT_ON],
+                                'malloc'        => [ 5.008, DEFAULT_ON],
+                           }],
+        'deprecated'    => [ 5.008, DEFAULT_ON],
+        'void'          => [ 5.008, DEFAULT_OFF],
+        'recursion'     => [ 5.008, DEFAULT_OFF],
+        'redefine'      => [ 5.008, DEFAULT_OFF],
+        'numeric'       => [ 5.008, DEFAULT_OFF],
+        'uninitialized' => [ 5.008, DEFAULT_OFF],
+        'once'          => [ 5.008, DEFAULT_OFF],
+        'misc'          => [ 5.008, DEFAULT_OFF],
+        'regexp'        => [ 5.008, DEFAULT_OFF],
+        'glob'          => [ 5.008, DEFAULT_ON],
+        'untie'         => [ 5.008, DEFAULT_OFF],
+        'substr'        => [ 5.008, DEFAULT_OFF],
+        'taint'         => [ 5.008, DEFAULT_OFF],
+        'signal'        => [ 5.008, DEFAULT_OFF],
+        'closure'       => [ 5.008, DEFAULT_OFF],
+        'overflow'      => [ 5.008, DEFAULT_OFF],
+        'portable'      => [ 5.008, DEFAULT_OFF],
+        'utf8'          => [ 5.008, {
+                                'surrogate' => [ 5.013, DEFAULT_OFF],
+                                'nonchar' => [ 5.013, DEFAULT_OFF],
+                                'non_unicode' => [ 5.013, DEFAULT_OFF],
+                        }],
+        'exiting'       => [ 5.008, DEFAULT_OFF],
+        'pack'          => [ 5.008, DEFAULT_OFF],
+        'unpack'        => [ 5.008, DEFAULT_OFF],
+        'threads'       => [ 5.008, DEFAULT_OFF],
+        'imprecision'   => [ 5.011, DEFAULT_OFF],
+        'experimental'  => [ 5.017, {
+                                'experimental::lexical_subs' =>
+                                    [ 5.017, DEFAULT_ON ],
+                                'experimental::regex_sets' =>
+                                    [ 5.017, DEFAULT_ON ],
+                                'experimental::lexical_topic' =>
+                                    [ 5.017, DEFAULT_ON ],
+                                'experimental::smartmatch' =>
+                                    [ 5.017, DEFAULT_ON ],
+                                'experimental::postderef' =>
+                                    [ 5.019, DEFAULT_ON ],
+                                'experimental::autoderef' =>
+                                    [ 5.019, DEFAULT_ON ],
+                                'experimental::signatures' =>
+                                    [ 5.019, DEFAULT_ON ],
+                                'experimental::win32_perlio' =>
+                                    [ 5.021, DEFAULT_ON ],
+                                'experimental::refaliasing' =>
+                                    [ 5.021, DEFAULT_ON ],
+                                'experimental::re_strict' =>
+                                    [ 5.021, DEFAULT_ON ],
+                                'experimental::const_attr' =>
+                                    [ 5.021, DEFAULT_ON ],
+                                'experimental::bitwise' =>
+                                    [ 5.021, DEFAULT_ON ],
+                        }],
+
+        'missing'       => [ 5.021, DEFAULT_OFF],
+        'redundant'     => [ 5.021, DEFAULT_OFF],
+        'locale'        => [ 5.021, DEFAULT_ON],
+
+         #'default'     => [ 5.008, DEFAULT_ON ],
 }]};
 
 my @def ;
@@ -299,7 +291,7 @@ sub mkOct
 
 if (@ARGV && $ARGV[0] eq "tree")
 {
-    print warningsTree($tree, " ") ;
+    print warningsTree($tree, "    ") ;
     exit ;
 }
 
@@ -359,14 +351,14 @@ EOM
       print $warn "\n/* Warnings Categories added in Perl $version */\n\n"
           if $last_ver != $version ;
       $name =~ y/:/_/;
-      print $warn tab(5, "#define WARN_$name"), " $k\n" ;
+      print $warn tab(6, "#define WARN_$name"), " $k\n" ;
       $last_ver = $version ;
   }
   print $warn "\n" ;
 
-  print $warn tab(5, '#define WARNsize'),      "$warn_size\n" ;
-  print $warn tab(5, '#define WARN_ALLstring'), '"', ('\125' x $warn_size) , "\"\n" ;
-  print $warn tab(5, '#define WARN_NONEstring'), '"', ('\0' x $warn_size) , "\"\n" ;
+  print $warn tab(6, '#define WARNsize'),      " $warn_size\n" ;
+  print $warn tab(6, '#define WARN_ALLstring'), ' "', ('\125' x $warn_size) , "\"\n" ;
+  print $warn tab(6, '#define WARN_NONEstring'), ' "', ('\0' x $warn_size) , "\"\n" ;
 
   print $warn <<'EOM';
 
@@ -431,21 +423,21 @@ while (<DATA>) {
 }
 
 my $last_ver = 0;
-print $pm "our %Offsets = (\n" ;
+print $pm "our %Offsets = (" ;
 foreach my $k (sort { $a <=> $b } keys %ValueToName) {
     my ($name, $version) = @{ $ValueToName{$k} };
     $name = lc $name;
     $k *= 2 ;
     if ( $last_ver != $version ) {
         print $pm "\n";
-        print $pm tab(4, "    # Warnings Categories added in Perl $version");
-        print $pm "\n\n";
+        print $pm tab(6, "    # Warnings Categories added in Perl $version");
+        print $pm "\n";
     }
-    print $pm tab(4, "    '$name'"), "=> $k,\n" ;
+    print $pm tab(6, "    '$name'"), "=> $k,\n" ;
     $last_ver = $version;
 }
 
-print $pm "  );\n\n" ;
+print $pm ");\n\n" ;
 
 print $pm "our %Bits = (\n" ;
 foreach my $k (sort keys  %list) {
@@ -453,12 +445,12 @@ foreach my $k (sort keys  %list) {
     my $v = $list{$k} ;
     my @list = sort { $a <=> $b } @$v ;
 
-    print $pm tab(4, "    '$k'"), '=> "',
+    print $pm tab(6, "    '$k'"), '=> "',
                mkHex($warn_size, map $_ * 2 , @list),
                '", # [', mkRange(@list), "]\n" ;
 }
 
-print $pm "  );\n\n" ;
+print $pm ");\n\n" ;
 
 print $pm "our %DeadBits = (\n" ;
 foreach my $k (sort keys  %list) {
@@ -466,20 +458,21 @@ foreach my $k (sort keys  %list) {
     my $v = $list{$k} ;
     my @list = sort { $a <=> $b } @$v ;
 
-    print $pm tab(4, "    '$k'"), '=> "',
+    print $pm tab(6, "    '$k'"), '=> "',
                mkHex($warn_size, map $_ * 2 + 1 , @list),
                '", # [', mkRange(@list), "]\n" ;
 }
 
-print $pm "  );\n\n" ;
-print $pm '$NONE     = "', ('\0' x $warn_size) , "\";\n" ;
-print $pm '$DEFAULT  = "', mkHex($warn_size, map $_ * 2, @def),
+print $pm ");\n\n" ;
+print $pm "# These are used by various things, including our own tests\n";
+print $pm tab(6, 'our $NONE'), '=  "', ('\0' x $warn_size) , "\";\n" ;
+print $pm tab(6, 'our $DEFAULT'), '=  "', mkHex($warn_size, map $_ * 2, @def),
                           '", # [', mkRange(@def), "]\n" ;
-print $pm '$LAST_BIT = ' . "$index ;\n" ;
-print $pm '$BYTES    = ' . "$warn_size ;\n" ;
+print $pm tab(6, 'our $LAST_BIT'), '=  ' . "$index ;\n" ;
+print $pm tab(6, 'our $BYTES'),    '=  ' . "$warn_size ;\n" ;
 while (<DATA>) {
     if ($_ eq "=for warnings.pl tree-goes-here\n") {
-      print $pm warningsTree($tree, " ");
+      print $pm warningsTree($tree, "    ");
       next;
     }
     print $pm $_ ;
@@ -490,7 +483,7 @@ read_only_bottom_close_and_rename($pm);
 __END__
 package warnings;
 
-our $VERSION = '1.30';
+our $VERSION = '1.31';
 
 # Verify that we're called correctly so that warnings will work.
 # see also strict.pm.
@@ -501,7 +494,7 @@ unless ( __FILE__ =~ /(^|[\/\\])\Q${\__PACKAGE__}\E\.pmc?$/ ) {
 
 KEYWORDS
 
-$All = "" ; vec($All, $Offsets{'all'}, 2) = 3 ;
+our $All = "" ; vec($All, $Offsets{'all'}, 2) = 3 ;
 
 sub Croaker
 {
@@ -780,17 +773,12 @@ be applied to their module.
 By default, optional warnings are disabled, so any legacy code that
 doesn't attempt to control the warnings will work unchanged.
 
-When we talk about "all" warnings we don't actually mean "all the
-warnings we support". See L</Top-level warning categories & associated
-confusion> for details. The "all" category should really be called the
-"default" category, if not for backwards-compatibility concerns.
-
-"All" warnings are enabled in a block by either of these:
+All warnings are enabled in a block by either of these:
 
     use warnings;
     use warnings 'all';
 
-Similarly "all" warnings are disabled in a block by either of these:
+Similarly all warnings are disabled in a block by either of these:
 
     no warnings;
     no warnings 'all';
@@ -908,7 +896,7 @@ details of how this flag interacts with lexical warnings.
 =item B<-W>
 X<-W>
 
-If the B<-W> flag is used on the command line, it will enable "all" warnings
+If the B<-W> flag is used on the command line, it will enable all warnings
 throughout the program regardless of whether warnings were disabled
 locally using C<no warnings> or C<$^W =0>.
 This includes all files that get
@@ -918,80 +906,10 @@ Think of it as the Perl equivalent of the "lint" command.
 =item B<-X>
 X<-X>
 
-Does the exact opposite to the B<-W> flag, i.e. it disables "all" warnings.
+Does the exact opposite to the B<-W> flag, i.e. it disables all warnings.
 
 =back
 
-=head2 Top-level warning categories & associated confusion
-
-The lexical warning pragma was introduced in v5.6.0 of perl, and from
-the very beginning doing C<use warnings> would enable the "all"
-category of warnings, which were all the warnings we support.
-
-This led to arguments whenever someone suggested a new warning be
-added to perl, since that implicitly meant that existing programs that
-used the warnings pragma would be retroactively subjected to them when
-perl was upgraded.
-
-So similarly to how most C compilers support C<-Wall> to mean "not
-quite all warnings" along with extra options like C<-Wextra>, we
-support warnings outside of the "all" category. Think of the "all"
-category as "default", that's what we'd call it we were starting out
-today and didn't have a bunch of programs doing C<use warnings "all">
-in the wild already.
-
-The categories we support are:
-
-=over
-
-=item * all
-
-This is the "default" category for warnings that we've supported ever
-since v5.6.0. We have and might occasionally add new warnings here if
-they're deemed to be similar in nature to our existing warnings, but
-mostly these are things we're pretty sure are a logic error, but
-aren't irrecoverable, so they're not a runtime error.
-
-When you upgrade perl you might find that we've added some new
-warnings here, but they won't be anything wildly different from the
-current set of warnings, so the burden of going through your existing
-code and auditing the new parts that are warning should be fairly
-light.
-
-=item * everything
-
-This is what "all" would be if the world made any sense, but since we
-started out with "all" you need to enable "everything" to really
-enable "all the warnings".
-
-You almost definitely don't want to enable "everything", unless you're
-willing to potentially get a flood of new warnings with every perl
-upgrade, and those warnings may be entirely different in spirit to
-existing warnings shipped with previous releases.
-
-Maybe we'll start introducing really pedantic warnings that aren't
-useful for most cases, maybe we'll start warning about inconsistent
-indentation, who knows? If you really want ALL the warnings perl has
-to offer enable these, otherwise stick with some more sane category.
-
-=item * extra
-
-These are warnings that we might have put into "all"
-(a.k.a. "default") if we had a time machine and were starting out with
-perl today, but they'd probably cause too much of a disruption today
-so we're not doing that.
-
-As of writing this the sole warning in this category is a warning
-about useless use of grep in void context, but unlike for the "all"
-category we reserve the right to freely add things to this category in
-the future.
-
-=back
-
-In the future we might add any number of other top-level
-categories. The backwards-compatibility promises of those categories
-(if any) will be documented here.
-
 =head2 Backward Compatibility
 
 If you are used to working with a version of Perl prior to the
index 585a2c0..2bb7122 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -37,6 +37,9 @@
 #include "re_top.h"
 #endif
 
+#define B_ON_NON_UTF8_LOCALE_IS_WRONG            \
+      "Use of \\b{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale"
+
 /*
  * pregcomp and pregexec -- regsub and regerror are not used in perl
  *
@@ -191,18 +194,6 @@ static const char* const non_utf8_target_but_utf8_required
                                         PL_XPosix_ptrs[_CC_WORDCHAR],         \
                                         LATIN_CAPITAL_LETTER_SHARP_S_UTF8);
 
-#define LOAD_UTF8_CHARCLASS_GCB()  /* Grapheme cluster boundaries */          \
-    STMT_START {                                                              \
-       LOAD_UTF8_CHARCLASS_DEBUG_TEST(PL_utf8_X_regular_begin,               \
-                                       "_X_regular_begin",                    \
-                                       NULL,                                  \
-                                       LATIN_CAPITAL_LETTER_SHARP_S_UTF8);    \
-       LOAD_UTF8_CHARCLASS_DEBUG_TEST(PL_utf8_X_extend,                      \
-                                       "_X_extend",                           \
-                                       NULL,                                  \
-                                       COMBINING_GRAVE_ACCENT_UTF8);          \
-    } STMT_END
-
 #define PLACEHOLDER    /* Something for the preprocessor to grab onto */
 /* TODO: Combine JUMPABLE and HAS_TEXT to cache OP(rn) */
 
@@ -262,16 +253,6 @@ static const char* const non_utf8_target_but_utf8_required
     } \
 } STMT_END 
 
-/* These constants are for finding GCB=LV and GCB=LVT in the CLUMP regnode.
- * These are for the pre-composed Hangul syllables, which are all in a
- * contiguous block and arranged there in such a way so as to facilitate
- * alorithmic determination of their characteristics.  As such, they don't need
- * a swash, but can be determined by simple arithmetic.  Almost all are
- * GCB=LVT, but every 28th one is a GCB=LV */
-#define SBASE 0xAC00    /* Start of block */
-#define SCount 11172    /* Length of block */
-#define TCount 28
-
 #define SLAB_FIRST(s) (&(s)->states[0])
 #define SLAB_LAST(s)  (&(s)->states[PERL_REGMATCH_SLAB_SLOTS-1])
 
@@ -754,7 +735,7 @@ Perl_re_intuit_start(pTHX_
 
         /* ml_anch: check after \n?
          *
-         * A note about IMPLICIT: on an un-anchored pattern beginning
+         * A note about PREGf_IMPLICIT: on an un-anchored pattern beginning
          * with /.*.../, these flags will have been added by the
          * compiler:
          *   /.*abc/, /.*abc/m:  PREGf_IMPLICIT | PREGf_ANCH_MBOL
@@ -1713,7 +1694,7 @@ REXEC_FBC_SCAN( /* Loops while (s < strend) */                 \
           FBC_UTF8(TEST_UV, TEST_UTF8, REXEC_FBC_TRYIT, PLACEHOLDER),          \
           TEST_NON_UTF8, REXEC_FBC_TRYIT, PLACEHOLDER)
 
-#define FBC_BOUND_A(TEST_NON_UTF8, TEST_UV, TEST_UTF8)                         \
+#define FBC_BOUND_A(TEST_NON_UTF8)                                             \
     FBC_BOUND_COMMON(                                                          \
             FBC_UTF8_A(TEST_NON_UTF8, REXEC_FBC_TRYIT, PLACEHOLDER),           \
             TEST_NON_UTF8, REXEC_FBC_TRYIT, PLACEHOLDER)
@@ -1723,11 +1704,63 @@ REXEC_FBC_SCAN( /* Loops while (s < strend) */                 \
           FBC_UTF8(TEST_UV, TEST_UTF8, PLACEHOLDER, REXEC_FBC_TRYIT),          \
           TEST_NON_UTF8, PLACEHOLDER, REXEC_FBC_TRYIT)
 
-#define FBC_NBOUND_A(TEST_NON_UTF8, TEST_UV, TEST_UTF8)                        \
+#define FBC_NBOUND_A(TEST_NON_UTF8)                                            \
     FBC_BOUND_COMMON(                                                          \
             FBC_UTF8_A(TEST_NON_UTF8, PLACEHOLDER, REXEC_FBC_TRYIT),           \
             TEST_NON_UTF8, PLACEHOLDER, REXEC_FBC_TRYIT)
 
+/* Takes a pointer to an inversion list, a pointer to its corresponding
+ * inversion map, and a code point, and returns the code point's value
+ * according to the two arrays.  It assumes that all code points have a value.
+ * This is used as the base macro for macros for particular properties */
+#define _generic_GET_BREAK_VAL_CP(invlist, invmap, cp)              \
+                             invmap[_invlist_search(invlist, cp)]
+
+/* Same as above, but takes begin, end ptrs to a UTF-8 encoded string instead
+ * of a code point, returning the value for the first code point in the string.
+ * And it takes the particular macro name that finds the desired value given a
+ * code point.  Merely convert the UTF-8 to code point and call the cp macro */
+#define _generic_GET_BREAK_VAL_UTF8(cp_macro, pos, strend)                     \
+             (__ASSERT_(pos < strend)                                          \
+                 /* Note assumes is valid UTF-8 */                             \
+             (cp_macro(utf8_to_uvchr_buf((pos), (strend), NULL))))
+
+/* Returns the GCB value for the input code point */
+#define getGCB_VAL_CP(cp)                                                      \
+          _generic_GET_BREAK_VAL_CP(                                           \
+                                    PL_GCB_invlist,                            \
+                                    Grapheme_Cluster_Break_invmap,             \
+                                    (cp))
+
+/* Returns the GCB value for the first code point in the UTF-8 encoded string
+ * bounded by pos and strend */
+#define getGCB_VAL_UTF8(pos, strend)                                           \
+    _generic_GET_BREAK_VAL_UTF8(getGCB_VAL_CP, pos, strend)
+
+
+/* Returns the SB value for the input code point */
+#define getSB_VAL_CP(cp)                                                       \
+          _generic_GET_BREAK_VAL_CP(                                           \
+                                    PL_SB_invlist,                             \
+                                    Sentence_Break_invmap,                     \
+                                    (cp))
+
+/* Returns the SB value for the first code point in the UTF-8 encoded string
+ * bounded by pos and strend */
+#define getSB_VAL_UTF8(pos, strend)                                            \
+    _generic_GET_BREAK_VAL_UTF8(getSB_VAL_CP, pos, strend)
+
+/* Returns the WB value for the input code point */
+#define getWB_VAL_CP(cp)                                                       \
+          _generic_GET_BREAK_VAL_CP(                                           \
+                                    PL_WB_invlist,                             \
+                                    Word_Break_invmap,                         \
+                                    (cp))
+
+/* Returns the WB value for the first code point in the UTF-8 encoded string
+ * bounded by pos and strend */
+#define getWB_VAL_UTF8(pos, strend)                                            \
+    _generic_GET_BREAK_VAL_UTF8(getWB_VAL_CP, pos, strend)
 
 /* We know what class REx starts with.  Try to find this position... */
 /* if reginfo->intuit, its a dryrun */
@@ -1845,7 +1878,7 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s,
 
         /* FALLTHROUGH */
 
-    do_exactf_non_utf8: /* Neither pattern nor string are UTF8, and there
+      do_exactf_non_utf8: /* Neither pattern nor string are UTF8, and there
                            are no glitches with fold-length differences
                            between the target string and pattern */
 
@@ -1879,8 +1912,8 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s,
         }
         break;
 
-    do_exactf_utf8:
-    {
+      do_exactf_utf8:
+      {
         unsigned expansion;
 
         /* If one of the operands is in utf8, we can't use the simpler folding
@@ -1937,30 +1970,259 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s,
 
     case BOUNDL:
         _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+        if (FLAGS(c) != TRADITIONAL_BOUND) {
+            Perl_ck_warner(aTHX_ packWARN(WARN_LOCALE),
+                                                B_ON_NON_UTF8_LOCALE_IS_WRONG);
+            goto do_boundu;
+        }
+
         FBC_BOUND(isWORDCHAR_LC, isWORDCHAR_LC_uvchr, isWORDCHAR_LC_utf8);
         break;
+
     case NBOUNDL:
         _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+        if (FLAGS(c) != TRADITIONAL_BOUND) {
+            Perl_ck_warner(aTHX_ packWARN(WARN_LOCALE),
+                                                B_ON_NON_UTF8_LOCALE_IS_WRONG);
+            goto do_nboundu;
+        }
+
         FBC_NBOUND(isWORDCHAR_LC, isWORDCHAR_LC_uvchr, isWORDCHAR_LC_utf8);
         break;
-    case BOUND:
+
+    case BOUND: /* regcomp.c makes sure that this only has the traditional \b
+                   meaning */
+        assert(FLAGS(c) == TRADITIONAL_BOUND);
+
         FBC_BOUND(isWORDCHAR, isWORDCHAR_uni, isWORDCHAR_utf8);
         break;
-    case BOUNDA:
-        FBC_BOUND_A(isWORDCHAR_A, isWORDCHAR_A, isWORDCHAR_A);
+
+    case BOUNDA: /* regcomp.c makes sure that this only has the traditional \b
+                   meaning */
+        assert(FLAGS(c) == TRADITIONAL_BOUND);
+
+        FBC_BOUND_A(isWORDCHAR_A);
         break;
-    case NBOUND:
+
+    case NBOUND: /* regcomp.c makes sure that this only has the traditional \b
+                   meaning */
+        assert(FLAGS(c) == TRADITIONAL_BOUND);
+
         FBC_NBOUND(isWORDCHAR, isWORDCHAR_uni, isWORDCHAR_utf8);
         break;
-    case NBOUNDA:
-        FBC_NBOUND_A(isWORDCHAR_A, isWORDCHAR_A, isWORDCHAR_A);
-        break;
-    case BOUNDU:
-        FBC_BOUND(isWORDCHAR_L1, isWORDCHAR_uni, isWORDCHAR_utf8);
+
+    case NBOUNDA: /* regcomp.c makes sure that this only has the traditional \b
+                   meaning */
+        assert(FLAGS(c) == TRADITIONAL_BOUND);
+
+        FBC_NBOUND_A(isWORDCHAR_A);
         break;
+
     case NBOUNDU:
-        FBC_NBOUND(isWORDCHAR_L1, isWORDCHAR_uni, isWORDCHAR_utf8);
+        if ((bound_type) FLAGS(c) == TRADITIONAL_BOUND) {
+            FBC_NBOUND(isWORDCHAR_L1, isWORDCHAR_uni, isWORDCHAR_utf8);
+            break;
+        }
+
+      do_nboundu:
+
+        to_complement = 1;
+        /* FALLTHROUGH */
+
+    case BOUNDU:
+      do_boundu:
+        switch((bound_type) FLAGS(c)) {
+            case TRADITIONAL_BOUND:
+                FBC_BOUND(isWORDCHAR_L1, isWORDCHAR_uni, isWORDCHAR_utf8);
+                break;
+            case GCB_BOUND:
+                if (s == reginfo->strbeg) { /* GCB always matches at begin and
+                                               end */
+                    if (to_complement ^ cBOOL(reginfo->intuit
+                                                      || regtry(reginfo, &s)))
+                    {
+                        goto got_it;
+                    }
+                    s += (utf8_target) ? UTF8SKIP(s) : 1;
+                }
+
+                if (utf8_target) {
+                    PL_GCB_enum before = getGCB_VAL_UTF8(
+                                               reghop3((U8*)s, -1,
+                                                       (U8*)(reginfo->strbeg)),
+                                               (U8*) reginfo->strend);
+                    while (s < strend) {
+                        PL_GCB_enum after = getGCB_VAL_UTF8((U8*) s,
+                                                        (U8*) reginfo->strend);
+                        if (to_complement ^ isGCB(before, after)) {
+                            if (reginfo->intuit || regtry(reginfo, &s)) {
+                                goto got_it;
+                            }
+                            before = after;
+                        }
+                        s += UTF8SKIP(s);
+                    }
+                }
+                else {  /* Not utf8.  Everything is a GCB except between CR and
+                           LF */
+                    while (s < strend) {
+                        if (to_complement ^ (UCHARAT(s - 1) != '\r'
+                                             || UCHARAT(s) != '\n'))
+                        {
+                            if (reginfo->intuit || regtry(reginfo, &s)) {
+                                goto got_it;
+                            }
+                            s++;
+                        }
+                    }
+                }
+
+                if (to_complement ^ cBOOL(reginfo->intuit || regtry(reginfo, &s))) {
+                    goto got_it;
+                }
+                break;
+
+            case SB_BOUND:
+                if (s == reginfo->strbeg) { /* SB always matches at beginning */
+                    if (to_complement
+                                ^ cBOOL(reginfo->intuit || regtry(reginfo, &s)))
+                    {
+                        goto got_it;
+                    }
+
+                    /* Didn't match.  Go try at the next position */
+                    s += (utf8_target) ? UTF8SKIP(s) : 1;
+                }
+
+                if (utf8_target) {
+                    PL_SB_enum before = getSB_VAL_UTF8(reghop3((U8*)s,
+                                                        -1,
+                                                        (U8*)(reginfo->strbeg)),
+                                                      (U8*) reginfo->strend);
+                    while (s < strend) {
+                        PL_SB_enum after = getSB_VAL_UTF8((U8*) s,
+                                                         (U8*) reginfo->strend);
+                        if (to_complement ^ isSB(before,
+                                                 after,
+                                                 (U8*) reginfo->strbeg,
+                                                 (U8*) s,
+                                                 (U8*) reginfo->strend,
+                                                 utf8_target))
+                        {
+                            if (reginfo->intuit || regtry(reginfo, &s)) {
+                                goto got_it;
+                            }
+                            before = after;
+                        }
+                        s += UTF8SKIP(s);
+                    }
+                }
+                else {  /* Not utf8. */
+                    PL_SB_enum before = getSB_VAL_CP((U8) *(s -1));
+                    while (s < strend) {
+                        PL_SB_enum after = getSB_VAL_CP((U8) *s);
+                        if (to_complement ^ isSB(before,
+                                                 after,
+                                                 (U8*) reginfo->strbeg,
+                                                 (U8*) s,
+                                                 (U8*) reginfo->strend,
+                                                 utf8_target))
+                        {
+                            if (reginfo->intuit || regtry(reginfo, &s)) {
+                                goto got_it;
+                            }
+                            before = after;
+                        }
+                        s++;
+                    }
+                }
+
+                /* Here are at the final position in the target string.  The SB
+                 * value is always true here, so matches, depending on other
+                 * constraints */
+                if (to_complement ^ cBOOL(reginfo->intuit
+                                                      || regtry(reginfo, &s)))
+                {
+                    goto got_it;
+                }
+
+                break;
+
+            case WB_BOUND:
+                if (s == reginfo->strbeg) {
+                    if (to_complement ^ cBOOL(reginfo->intuit
+                                              || regtry(reginfo, &s)))
+                    {
+                        goto got_it;
+                    }
+                    s += (utf8_target) ? UTF8SKIP(s) : 1;
+                }
+
+                if (utf8_target) {
+                    /* We are at a boundary between char_sub_0 and char_sub_1.
+                     * We also keep track of the value for char_sub_-1 as we
+                     * loop through the line.   Context may be needed to make a
+                     * determination, and if so, this can save having to
+                     * recalculate it */
+                    PL_WB_enum previous = PL_WB_UNKNOWN;
+                    PL_WB_enum before = getWB_VAL_UTF8(
+                                              reghop3((U8*)s,
+                                                      -1,
+                                                      (U8*)(reginfo->strbeg)),
+                                              (U8*) reginfo->strend);
+                    while (s < strend) {
+                        PL_WB_enum after = getWB_VAL_UTF8((U8*) s,
+                                                        (U8*) reginfo->strend);
+                        if (to_complement ^ isWB(previous,
+                                                 before,
+                                                 after,
+                                                 (U8*) reginfo->strbeg,
+                                                 (U8*) s,
+                                                 (U8*) reginfo->strend,
+                                                 utf8_target))
+                        {
+                            if (reginfo->intuit || regtry(reginfo, &s)) {
+                                goto got_it;
+                            }
+                            previous = before;
+                            before = after;
+                        }
+                        s += UTF8SKIP(s);
+                    }
+                }
+                else {  /* Not utf8. */
+                    PL_WB_enum previous = PL_WB_UNKNOWN;
+                    PL_WB_enum before = getWB_VAL_CP((U8) *(s -1));
+                    while (s < strend) {
+                        PL_WB_enum after = getWB_VAL_CP((U8) *s);
+                        if (to_complement ^ isWB(previous,
+                                                 before,
+                                                 after,
+                                                 (U8*) reginfo->strbeg,
+                                                 (U8*) s,
+                                                 (U8*) reginfo->strend,
+                                                 utf8_target))
+                        {
+                            if (reginfo->intuit || regtry(reginfo, &s)) {
+                                goto got_it;
+                            }
+                            previous = before;
+                            before = after;
+                        }
+                        s++;
+                    }
+                }
+
+                if (to_complement ^ cBOOL(reginfo->intuit
+                                          || regtry(reginfo, &s)))
+                {
+                    goto got_it;
+                }
+
+                break;
+        }
         break;
+
     case LNBREAK:
         REXEC_FBC_CSCAN(is_LNBREAK_utf8_safe(s, strend),
                         is_LNBREAK_latin1_safe(s, strend)
@@ -2021,7 +2283,7 @@ S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s,
         }
         else {
 
-      posix_utf8:
+          posix_utf8:
             classnum = (_char_class_number) FLAGS(c);
             if (classnum < _FIRST_NON_SWASH_CC) {
                 while (s < strend) {
@@ -2755,86 +3017,52 @@ Perl_regexec_flags(pTHX_ REGEXP * const rx, char *stringarg, char *strend,
        ));
     }
 
-    /* Simplest case:  anchored match need be tried only once. */
-    /*  [unless only anchor is MBOL - implying multiline is set] */
+    /* Simplest case: anchored match need be tried only once, or with
+     * MBOL, only at the beginning of each line.
+     *
+     * Note that /.*.../ sets PREGf_IMPLICIT|MBOL, while /.*.../s sets
+     * PREGf_IMPLICIT|SBOL. The idea is that with /.*.../s, if it doesn't
+     * match at the start of the string then it won't match anywhere else
+     * either; while with /.*.../, if it doesn't match at the beginning,
+     * the earliest it could match is at the start of the next line */
+
     if (prog->intflags & (PREGf_ANCH & ~PREGf_ANCH_GPOS)) {
-       if (s == startpos && regtry(reginfo, &s))
+        char *end;
+
+       if (regtry(reginfo, &s))
            goto got_it;
-        else if (multiline || (prog->intflags & (PREGf_IMPLICIT | PREGf_ANCH_MBOL))) /* XXXX SBOL? */
-       {
-           char *end;
-
-           if (minlen)
-               dontbother = minlen - 1;
-           end = HOP3c(strend, -dontbother, strbeg) - 1;
-           /* for multiline we only have to try after newlines */
-           if (prog->check_substr || prog->check_utf8) {
-                /* because of the goto we can not easily reuse the macros for bifurcating the
-                   unicode/non-unicode match modes here like we do elsewhere - demerphq */
-                if (utf8_target) {
-                    if (s == startpos)
-                        goto after_try_utf8;
-                    while (1) {
-                        if (regtry(reginfo, &s)) {
-                            goto got_it;
-                        }
-                      after_try_utf8:
-                        if (s > end) {
-                            goto phooey;
-                        }
-                        if (prog->extflags & RXf_USE_INTUIT) {
-                            s = re_intuit_start(rx, sv, strbeg,
-                                    s + UTF8SKIP(s), strend, flags, NULL);
-                            if (!s) {
-                                goto phooey;
-                            }
-                        }
-                        else {
-                            s += UTF8SKIP(s);
-                        }
-                    }
-                } /* end search for check string in unicode */
-                else {
-                    if (s == startpos) {
-                        goto after_try_latin;
-                    }
-                    while (1) {
-                        if (regtry(reginfo, &s)) {
-                            goto got_it;
-                        }
-                      after_try_latin:
-                        if (s > end) {
-                            goto phooey;
-                        }
-                        if (prog->extflags & RXf_USE_INTUIT) {
-                            s = re_intuit_start(rx, sv, strbeg,
-                                        s + 1, strend, flags, NULL);
-                            if (!s) {
-                                goto phooey;
-                            }
-                        }
-                        else {
-                            s++;
-                        }
-                    }
-                } /* end search for check string in latin*/
-           } /* end search for check string */
-           else { /* search for newline */
-               if (s > startpos) {
-                    /*XXX: The s-- is almost definitely wrong here under unicode - demeprhq*/
-                   s--;
-               }
-               /* We can use a more efficient search as newlines are the same in unicode as they are in latin */
-               while (s <= end) { /* note it could be possible to match at the end of the string */
-                   if (*s++ == '\n') { /* don't need PL_utf8skip here */
-                       if (regtry(reginfo, &s))
-                           goto got_it;
-                   }
-               }
-           } /* end search for newline */
-       } /* end anchored/multiline check string search */
-       goto phooey;
-    } else if (prog->intflags & PREGf_ANCH_GPOS)
+
+        if (!(prog->intflags & PREGf_ANCH_MBOL))
+            goto phooey;
+
+        /* didn't match at start, try at other newline positions */
+
+        if (minlen)
+            dontbother = minlen - 1;
+        end = HOP3c(strend, -dontbother, strbeg) - 1;
+
+        /* skip to next newline */
+
+        while (s <= end) { /* note it could be possible to match at the end of the string */
+            /* NB: newlines are the same in unicode as they are in latin */
+            if (*s++ != '\n')
+                continue;
+            if (prog->check_substr || prog->check_utf8) {
+            /* note that with PREGf_IMPLICIT, intuit can only fail
+             * or return the start position, so it's of limited utility.
+             * Nevertheless, I made the decision that the potential for
+             * quick fail was still worth it - DAPM */
+                s = re_intuit_start(rx, sv, strbeg, s, strend, flags, NULL);
+                if (!s)
+                    goto phooey;
+            }
+            if (regtry(reginfo, &s))
+                goto got_it;
+        }
+        goto phooey;
+    } /* end anchored search */
+
+    if (prog->intflags & PREGf_ANCH_GPOS)
     {
         /* PREGf_ANCH_GPOS should never be true if PREGf_GPOS_SEEN is not true */
         assert(prog->intflags & PREGf_GPOS_SEEN);
@@ -3147,7 +3375,7 @@ Perl_regexec_flags(pTHX_ REGEXP * const rx, char *stringarg, char *strend,
     /* Failure. */
     goto phooey;
 
-got_it:
+  got_it:
     /* s/// doesn't like it if $& is earlier than where we asked it to
      * start searching (which can happen on something like /.\G/) */
     if (       (flags & REXEC_FAIL_ON_UNDERFLOW)
@@ -3187,7 +3415,7 @@ got_it:
 
     return 1;
 
-phooey:
+  phooey:
     DEBUG_EXECUTE_r(PerlIO_printf(Perl_debug_log, "%sMatch failed%s\n",
                          PL_colors[4], PL_colors[5]));
 
@@ -3926,6 +4154,620 @@ S_setup_EXACTISH_ST_c1_c2(pTHX_ const regnode * const text_node, int *c1p,
     return TRUE;
 }
 
+/* This creates a single number by combining two, with 'before' being like the
+ * 10's digit, but this isn't necessarily base 10; it is base however many
+ * elements of the enum there are */
+#define GCBcase(before, after) ((PL_GCB_ENUM_COUNT * before) + after)
+
+STATIC bool
+S_isGCB(const PL_GCB_enum before, const PL_GCB_enum after)
+{
+    /* returns a boolean indicating if there is a Grapheme Cluster Boundary
+     * between the inputs.  See http://www.unicode.org/reports/tr29/ */
+
+    switch (GCBcase(before, after)) {
+
+        /*  Break at the start and end of text.
+            GB1.   sot ÷
+            GB2.   ÷ eot
+
+            Break before and after controls except between CR and LF
+            GB4.  ( Control | CR | LF )  ÷
+            GB5.   ÷  ( Control | CR | LF )
+
+            Otherwise, break everywhere.
+            GB10.  Any  ÷  Any */
+        default:
+            return TRUE;
+
+        /* Do not break between a CR and LF.
+            GB3.  CR  ×  LF */
+        case GCBcase(PL_GCB_CR, PL_GCB_LF):
+            return FALSE;
+
+        /* Do not break Hangul syllable sequences.
+            GB6.  L  ×  ( L | V | LV | LVT ) */
+        case GCBcase(PL_GCB_L, PL_GCB_L):
+        case GCBcase(PL_GCB_L, PL_GCB_V):
+        case GCBcase(PL_GCB_L, PL_GCB_LV):
+        case GCBcase(PL_GCB_L, PL_GCB_LVT):
+            return FALSE;
+
+        /*  GB7.  ( LV | V )  ×  ( V | T ) */
+        case GCBcase(PL_GCB_LV, PL_GCB_V):
+        case GCBcase(PL_GCB_LV, PL_GCB_T):
+        case GCBcase(PL_GCB_V, PL_GCB_V):
+        case GCBcase(PL_GCB_V, PL_GCB_T):
+            return FALSE;
+
+        /*  GB8.  ( LVT | T)  ×  T */
+        case GCBcase(PL_GCB_LVT, PL_GCB_T):
+        case GCBcase(PL_GCB_T, PL_GCB_T):
+            return FALSE;
+
+        /* Do not break between regional indicator symbols.
+            GB8a.  Regional_Indicator  ×  Regional_Indicator */
+        case GCBcase(PL_GCB_Regional_Indicator, PL_GCB_Regional_Indicator):
+            return FALSE;
+
+        /* Do not break before extending characters.
+            GB9.     ×  Extend */
+        case GCBcase(PL_GCB_Other, PL_GCB_Extend):
+        case GCBcase(PL_GCB_Extend, PL_GCB_Extend):
+        case GCBcase(PL_GCB_L, PL_GCB_Extend):
+        case GCBcase(PL_GCB_LV, PL_GCB_Extend):
+        case GCBcase(PL_GCB_LVT, PL_GCB_Extend):
+        case GCBcase(PL_GCB_Prepend, PL_GCB_Extend):
+        case GCBcase(PL_GCB_Regional_Indicator, PL_GCB_Extend):
+        case GCBcase(PL_GCB_SpacingMark, PL_GCB_Extend):
+        case GCBcase(PL_GCB_T, PL_GCB_Extend):
+        case GCBcase(PL_GCB_V, PL_GCB_Extend):
+            return FALSE;
+
+        /* Do not break before SpacingMarks, or after Prepend characters.
+            GB9a.     ×  SpacingMark */
+        case GCBcase(PL_GCB_Other, PL_GCB_SpacingMark):
+        case GCBcase(PL_GCB_Extend, PL_GCB_SpacingMark):
+        case GCBcase(PL_GCB_L, PL_GCB_SpacingMark):
+        case GCBcase(PL_GCB_LV, PL_GCB_SpacingMark):
+        case GCBcase(PL_GCB_LVT, PL_GCB_SpacingMark):
+        case GCBcase(PL_GCB_Prepend, PL_GCB_SpacingMark):
+        case GCBcase(PL_GCB_Regional_Indicator, PL_GCB_SpacingMark):
+        case GCBcase(PL_GCB_SpacingMark, PL_GCB_SpacingMark):
+        case GCBcase(PL_GCB_T, PL_GCB_SpacingMark):
+        case GCBcase(PL_GCB_V, PL_GCB_SpacingMark):
+            return FALSE;
+
+        /* GB9b.  Prepend  ×   */
+        case GCBcase(PL_GCB_Prepend, PL_GCB_Other):
+        case GCBcase(PL_GCB_Prepend, PL_GCB_L):
+        case GCBcase(PL_GCB_Prepend, PL_GCB_LV):
+        case GCBcase(PL_GCB_Prepend, PL_GCB_LVT):
+        case GCBcase(PL_GCB_Prepend, PL_GCB_Prepend):
+        case GCBcase(PL_GCB_Prepend, PL_GCB_Regional_Indicator):
+        case GCBcase(PL_GCB_Prepend, PL_GCB_T):
+        case GCBcase(PL_GCB_Prepend, PL_GCB_V):
+            return FALSE;
+    }
+
+    NOT_REACHED;
+}
+
+#define SBcase(before, after) ((SB_ENUM_COUNT * before) + after)
+
+STATIC bool
+S_isSB(pTHX_ PL_SB_enum before,
+             PL_SB_enum after,
+             const U8 * const strbeg,
+             const U8 * const curpos,
+             const U8 * const strend,
+             const bool utf8_target)
+{
+    /* returns a boolean indicating if there is a Sentence Boundary Break
+     * between the inputs.  See http://www.unicode.org/reports/tr29/ */
+
+    U8 * lpos = (U8 *) curpos;
+    U8 * temp_pos;
+    PL_SB_enum backup;
+
+    PERL_ARGS_ASSERT_ISSB;
+
+    /* Break at the start and end of text.
+        SB1.  sot  ÷
+        SB2.  ÷  eot */
+    if (before == PL_SB_EDGE || after == PL_SB_EDGE) {
+        return TRUE;
+    }
+
+    /* SB 3: Do not break within CRLF. */
+    if (before == PL_SB_CR && after == PL_SB_LF) {
+        return FALSE;
+    }
+
+    /* Break after paragraph separators.  (though why CR and LF are considered
+     * so is beyond me (khw)
+       SB4.  Sep | CR | LF  ÷ */
+    if (before == PL_SB_Sep || before == PL_SB_CR || before == PL_SB_LF) {
+        return TRUE;
+    }
+
+    /* Ignore Format and Extend characters, except after sot, Sep, CR, or LF.
+     * (See Section 6.2, Replacing Ignore Rules.)
+        SB5.  X (Extend | Format)*  →  X */
+    if (after == PL_SB_Extend || after == PL_SB_Format) {
+        return FALSE;
+    }
+
+    if (before == PL_SB_Extend || before == PL_SB_Format) {
+        before = backup_one_SB(strbeg, &lpos, utf8_target);
+    }
+
+    /* Do not break after ambiguous terminators like period, if they are
+     * immediately followed by a number or lowercase letter, if they are
+     * between uppercase letters, if the first following letter (optionally
+     * after certain punctuation) is lowercase, or if they are followed by
+     * "continuation" punctuation such as comma, colon, or semicolon. For
+     * example, a period may be an abbreviation or numeric period, and thus may
+     * not mark the end of a sentence.
+
+     * SB6. ATerm  ×  Numeric */
+    if (before == PL_SB_ATerm && after == PL_SB_Numeric) {
+        return FALSE;
+    }
+
+    /* SB7.  Upper ATerm  ×  Upper */
+    if (before == PL_SB_ATerm && after == PL_SB_Upper) {
+        temp_pos = lpos;
+        if (PL_SB_Upper == backup_one_SB(strbeg, &temp_pos, utf8_target)) {
+            return FALSE;
+        }
+    }
+
+    /* SB8a.  (STerm | ATerm) Close* Sp*  ×  (SContinue | STerm | ATerm)
+     * SB10.  (STerm | ATerm) Close* Sp*  ×  ( Sp | Sep | CR | LF )      */
+    backup = before;
+    temp_pos = lpos;
+    while (backup == PL_SB_Sp) {
+        backup = backup_one_SB(strbeg, &temp_pos, utf8_target);
+    }
+    while (backup == PL_SB_Close) {
+        backup = backup_one_SB(strbeg, &temp_pos, utf8_target);
+    }
+    if ((backup == PL_SB_STerm || backup == PL_SB_ATerm)
+        && (   after == PL_SB_SContinue
+            || after == PL_SB_STerm
+            || after == PL_SB_ATerm
+            || after == PL_SB_Sp
+            || after == PL_SB_Sep
+            || after == PL_SB_CR
+            || after == PL_SB_LF))
+    {
+        return FALSE;
+    }
+
+    /* SB8.  ATerm Close* Sp*  ×  ( ¬(OLetter | Upper | Lower | Sep | CR | LF |
+     *                                              STerm | ATerm) )* Lower */
+    if (backup == PL_SB_ATerm) {
+        U8 * rpos = (U8 *) curpos;
+        PL_SB_enum later = after;
+
+        while (    later != PL_SB_OLetter
+                && later != PL_SB_Upper
+                && later != PL_SB_Lower
+                && later != PL_SB_Sep
+                && later != PL_SB_CR
+                && later != PL_SB_LF
+                && later != PL_SB_STerm
+                && later != PL_SB_ATerm
+                && later != PL_SB_EDGE)
+        {
+            later = advance_one_SB(&rpos, strend, utf8_target);
+        }
+        if (later == PL_SB_Lower) {
+            return FALSE;
+        }
+    }
+
+    /* Break after sentence terminators, but include closing punctuation,
+     * trailing spaces, and a paragraph separator (if present). [See note
+     * below.]
+     * SB9.  ( STerm | ATerm ) Close*  ×  ( Close | Sp | Sep | CR | LF ) */
+    backup = before;
+    temp_pos = lpos;
+    while (backup == PL_SB_Close) {
+        backup = backup_one_SB(strbeg, &temp_pos, utf8_target);
+    }
+    if ((backup == PL_SB_STerm || backup == PL_SB_ATerm)
+        && (   after == PL_SB_Close
+            || after == PL_SB_Sp
+            || after == PL_SB_Sep
+            || after == PL_SB_CR
+            || after == PL_SB_LF))
+    {
+        return FALSE;
+    }
+
+
+    /* SB11.  ( STerm | ATerm ) Close* Sp* ( Sep | CR | LF )?  ÷ */
+    temp_pos = lpos;
+    backup = backup_one_SB(strbeg, &temp_pos, utf8_target);
+    if (   backup == PL_SB_Sep
+        || backup == PL_SB_CR
+        || backup == PL_SB_LF)
+    {
+        lpos = temp_pos;
+    }
+    else {
+        backup = before;
+    }
+    while (backup == PL_SB_Sp) {
+        backup = backup_one_SB(strbeg, &lpos, utf8_target);
+    }
+    while (backup == PL_SB_Close) {
+        backup = backup_one_SB(strbeg, &lpos, utf8_target);
+    }
+    if (backup == PL_SB_STerm || backup == PL_SB_ATerm) {
+        return TRUE;
+    }
+
+    /* Otherwise, do not break.
+    SB12.  Any  ×  Any */
+
+    return FALSE;
+}
+
+STATIC PL_SB_enum
+S_advance_one_SB(pTHX_ U8 ** curpos, const U8 * const strend, const bool utf8_target)
+{
+    PL_SB_enum sb;
+
+    PERL_ARGS_ASSERT_ADVANCE_ONE_SB;
+
+    if (*curpos >= strend) {
+        return PL_SB_EDGE;
+    }
+
+    if (utf8_target) {
+        do {
+            *curpos += UTF8SKIP(*curpos);
+            if (*curpos >= strend) {
+                return PL_SB_EDGE;
+            }
+            sb = getSB_VAL_UTF8(*curpos, strend);
+        } while (sb == PL_SB_Extend || sb == PL_SB_Format);
+    }
+    else {
+        do {
+            (*curpos)++;
+            if (*curpos >= strend) {
+                return PL_SB_EDGE;
+            }
+            sb = getSB_VAL_CP(**curpos);
+        } while (sb == PL_SB_Extend || sb == PL_SB_Format);
+    }
+
+    return sb;
+}
+
+STATIC PL_SB_enum
+S_backup_one_SB(pTHX_ const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
+{
+    PL_SB_enum sb;
+
+    PERL_ARGS_ASSERT_BACKUP_ONE_SB;
+
+    if (*curpos < strbeg) {
+        return PL_SB_EDGE;
+    }
+
+    if (utf8_target) {
+        U8 * prev_char_pos = reghopmaybe3(*curpos, -1, strbeg);
+        if (! prev_char_pos) {
+            return PL_SB_EDGE;
+        }
+
+        /* Back up over Extend and Format.  curpos is always just to the right
+         * of the characater whose value we are getting */
+        do {
+            U8 * prev_prev_char_pos;
+            if ((prev_prev_char_pos = reghopmaybe3((U8 *) prev_char_pos, -1,
+                                                                      strbeg)))
+            {
+                sb = getSB_VAL_UTF8(prev_prev_char_pos, prev_char_pos);
+                *curpos = prev_char_pos;
+                prev_char_pos = prev_prev_char_pos;
+            }
+            else {
+                *curpos = (U8 *) strbeg;
+                return PL_SB_EDGE;
+            }
+        } while (sb == PL_SB_Extend || sb == PL_SB_Format);
+    }
+    else {
+        do {
+            if (*curpos - 2 < strbeg) {
+                *curpos = (U8 *) strbeg;
+                return PL_SB_EDGE;
+            }
+            (*curpos)--;
+            sb = getSB_VAL_CP(*(*curpos - 1));
+        } while (sb == PL_SB_Extend || sb == PL_SB_Format);
+    }
+
+    return sb;
+}
+
+#define WBcase(before, after) ((PL_WB_ENUM_COUNT * before) + after)
+
+STATIC bool
+S_isWB(pTHX_ PL_WB_enum previous,
+             PL_WB_enum before,
+             PL_WB_enum after,
+             const U8 * const strbeg,
+             const U8 * const curpos,
+             const U8 * const strend,
+             const bool utf8_target)
+{
+    /*  Return a boolean as to if the boundary between 'before' and 'after' is
+     *  a Unicode word break, using their published algorithm.  Context may be
+     *  needed to make this determination.  If the value for the character
+     *  before 'before' is known, it is passed as 'previous'; otherwise that
+     *  should be set to PL_WB_UNKNOWN.  The other input parameters give the
+     *  boundaries and current position in the matching of the string.  That
+     *  is, 'curpos' marks the position where the character whose wb value is
+     *  'after' begins.  See http://www.unicode.org/reports/tr29/ */
+
+    U8 * before_pos = (U8 *) curpos;
+    U8 * after_pos = (U8 *) curpos;
+
+    PERL_ARGS_ASSERT_ISWB;
+
+    /* WB1 and WB2: Break at the start and end of text. */
+    if (before == PL_WB_EDGE || after == PL_WB_EDGE) {
+        return TRUE;
+    }
+
+    /* WB 3: Do not break within CRLF. */
+    if (before == PL_WB_CR && after == PL_WB_LF) {
+        return FALSE;
+    }
+
+    /* WB 3a and WB 3b: Otherwise break before and after Newlines (including CR
+     * and LF) */
+    if (   before == PL_WB_CR || before == PL_WB_LF || before == PL_WB_Newline
+        || after ==  PL_WB_CR || after ==  PL_WB_LF || after ==  PL_WB_Newline)
+    {
+        return TRUE;
+    }
+
+    /* Ignore Format and Extend characters, except when they appear at the
+     * beginning of a region of text.
+     * WB4.  X (Extend | Format)*  →  X. */
+
+    if (after == PL_WB_Extend || after == PL_WB_Format) {
+        return FALSE;
+    }
+
+    if (before == PL_WB_Extend || before == PL_WB_Format) {
+        before = backup_one_WB(&previous, strbeg, &before_pos, utf8_target);
+    }
+
+    switch (WBcase(before, after)) {
+            /* Otherwise, break everywhere (including around ideographs).
+                WB14.  Any  ÷  Any */
+            default:
+                return TRUE;
+
+            /* Do not break between most letters.
+                WB5.  (ALetter | Hebrew_Letter) × (ALetter | Hebrew_Letter) */
+            case WBcase(PL_WB_ALetter, PL_WB_ALetter):
+            case WBcase(PL_WB_ALetter, PL_WB_Hebrew_Letter):
+            case WBcase(PL_WB_Hebrew_Letter, PL_WB_ALetter):
+            case WBcase(PL_WB_Hebrew_Letter, PL_WB_Hebrew_Letter):
+                return FALSE;
+
+            /* Do not break letters across certain punctuation.
+                WB6.  (ALetter | Hebrew_Letter)
+                        × (MidLetter | MidNumLet | Single_Quote) (ALetter
+                                                            | Hebrew_Letter) */
+            case WBcase(PL_WB_ALetter, PL_WB_MidLetter):
+            case WBcase(PL_WB_ALetter, PL_WB_MidNumLet):
+            case WBcase(PL_WB_ALetter, PL_WB_Single_Quote):
+            case WBcase(PL_WB_Hebrew_Letter, PL_WB_MidLetter):
+            case WBcase(PL_WB_Hebrew_Letter, PL_WB_MidNumLet):
+            /*case WBcase(PL_WB_Hebrew_Letter, PL_WB_Single_Quote):*/
+                after = advance_one_WB(&after_pos, strend, utf8_target);
+                return after != PL_WB_ALetter && after != PL_WB_Hebrew_Letter;
+
+            /* WB7.  (ALetter | Hebrew_Letter) (MidLetter | MidNumLet |
+             *                    Single_Quote) ×  (ALetter | Hebrew_Letter) */
+            case WBcase(PL_WB_MidLetter, PL_WB_ALetter):
+            case WBcase(PL_WB_MidLetter, PL_WB_Hebrew_Letter):
+            case WBcase(PL_WB_MidNumLet, PL_WB_ALetter):
+            case WBcase(PL_WB_MidNumLet, PL_WB_Hebrew_Letter):
+            case WBcase(PL_WB_Single_Quote, PL_WB_ALetter):
+            case WBcase(PL_WB_Single_Quote, PL_WB_Hebrew_Letter):
+                before
+                  = backup_one_WB(&previous, strbeg, &before_pos, utf8_target);
+                return before != PL_WB_ALetter && before != PL_WB_Hebrew_Letter;
+
+            /* WB7a.  Hebrew_Letter  ×  Single_Quote */
+            case WBcase(PL_WB_Hebrew_Letter, PL_WB_Single_Quote):
+                return FALSE;
+
+            /* WB7b.  Hebrew_Letter  ×  Double_Quote Hebrew_Letter */
+            case WBcase(PL_WB_Hebrew_Letter, PL_WB_Double_Quote):
+                return advance_one_WB(&after_pos, strend, utf8_target)
+                                                        != PL_WB_Hebrew_Letter;
+
+            /* WB7c.  Hebrew_Letter Double_Quote  ×  Hebrew_Letter */
+            case WBcase(PL_WB_Double_Quote, PL_WB_Hebrew_Letter):
+                return backup_one_WB(&previous, strbeg, &before_pos, utf8_target)
+                                                        != PL_WB_Hebrew_Letter;
+
+            /* Do not break within sequences of digits, or digits adjacent to
+             * letters (“3a”, or “A3”).
+                WB8.  Numeric  ×  Numeric */
+            case WBcase(PL_WB_Numeric, PL_WB_Numeric):
+                return FALSE;
+
+            /* WB9.  (ALetter | Hebrew_Letter)  ×  Numeric */
+            case WBcase(PL_WB_ALetter, PL_WB_Numeric):
+            case WBcase(PL_WB_Hebrew_Letter, PL_WB_Numeric):
+                return FALSE;
+
+            /* WB10.  Numeric  ×  (ALetter | Hebrew_Letter) */
+            case WBcase(PL_WB_Numeric, PL_WB_ALetter):
+            case WBcase(PL_WB_Numeric, PL_WB_Hebrew_Letter):
+                return FALSE;
+
+            /* Do not break within sequences, such as “3.2” or “3,456.789”.
+                WB11.   Numeric (MidNum | MidNumLet | Single_Quote)  ×  Numeric
+             */
+            case WBcase(PL_WB_MidNum, PL_WB_Numeric):
+            case WBcase(PL_WB_MidNumLet, PL_WB_Numeric):
+            case WBcase(PL_WB_Single_Quote, PL_WB_Numeric):
+                return backup_one_WB(&previous, strbeg, &before_pos, utf8_target)
+                                                               != PL_WB_Numeric;
+
+            /*  WB12.   Numeric  ×  (MidNum | MidNumLet | Single_Quote) Numeric
+             *  */
+            case WBcase(PL_WB_Numeric, PL_WB_MidNum):
+            case WBcase(PL_WB_Numeric, PL_WB_MidNumLet):
+            case WBcase(PL_WB_Numeric, PL_WB_Single_Quote):
+                return advance_one_WB(&after_pos, strend, utf8_target)
+                                                               != PL_WB_Numeric;
+
+            /* Do not break between Katakana.
+               WB13.  Katakana  ×  Katakana */
+            case WBcase(PL_WB_Katakana, PL_WB_Katakana):
+                return FALSE;
+
+            /* Do not break from extenders.
+               WB13a.  (ALetter | Hebrew_Letter | Numeric | Katakana |
+                                            ExtendNumLet)  ×  ExtendNumLet */
+            case WBcase(PL_WB_ALetter, PL_WB_ExtendNumLet):
+            case WBcase(PL_WB_Hebrew_Letter, PL_WB_ExtendNumLet):
+            case WBcase(PL_WB_Numeric, PL_WB_ExtendNumLet):
+            case WBcase(PL_WB_Katakana, PL_WB_ExtendNumLet):
+            case WBcase(PL_WB_ExtendNumLet, PL_WB_ExtendNumLet):
+                return FALSE;
+
+            /* WB13b.  ExtendNumLet  ×  (ALetter | Hebrew_Letter | Numeric
+             *                                                 | Katakana) */
+            case WBcase(PL_WB_ExtendNumLet, PL_WB_ALetter):
+            case WBcase(PL_WB_ExtendNumLet, PL_WB_Hebrew_Letter):
+            case WBcase(PL_WB_ExtendNumLet, PL_WB_Numeric):
+            case WBcase(PL_WB_ExtendNumLet, PL_WB_Katakana):
+                return FALSE;
+
+            /* Do not break between regional indicator symbols.
+               WB13c.  Regional_Indicator  ×  Regional_Indicator */
+            case WBcase(PL_WB_Regional_Indicator, PL_WB_Regional_Indicator):
+                return FALSE;
+
+    }
+
+    NOT_REACHED;
+}
+
+STATIC PL_WB_enum
+S_advance_one_WB(pTHX_ U8 ** curpos, const U8 * const strend, const bool utf8_target)
+{
+    PL_WB_enum wb;
+
+    PERL_ARGS_ASSERT_ADVANCE_ONE_WB;
+
+    if (*curpos >= strend) {
+        return PL_WB_EDGE;
+    }
+
+    if (utf8_target) {
+
+        /* Advance over Extend and Format */
+        do {
+            *curpos += UTF8SKIP(*curpos);
+            if (*curpos >= strend) {
+                return PL_WB_EDGE;
+            }
+            wb = getWB_VAL_UTF8(*curpos, strend);
+        } while (wb == PL_WB_Extend || wb == PL_WB_Format);
+    }
+    else {
+        do {
+            (*curpos)++;
+            if (*curpos >= strend) {
+                return PL_WB_EDGE;
+            }
+            wb = getWB_VAL_CP(**curpos);
+        } while (wb == PL_WB_Extend || wb == PL_WB_Format);
+    }
+
+    return wb;
+}
+
+STATIC PL_WB_enum
+S_backup_one_WB(pTHX_ PL_WB_enum * previous, const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
+{
+    PL_WB_enum wb;
+
+    PERL_ARGS_ASSERT_BACKUP_ONE_WB;
+
+    /* If we know what the previous character's break value is, don't have
+        * to look it up */
+    if (*previous != PL_WB_UNKNOWN) {
+        wb = *previous;
+        *previous = PL_WB_UNKNOWN;
+        /* XXX Note that doesn't change curpos, and maybe should */
+
+        /* But we always back up over these two types */
+        if (wb != PL_WB_Extend && wb != PL_WB_Format) {
+            return wb;
+        }
+    }
+
+    if (*curpos < strbeg) {
+        return PL_WB_EDGE;
+    }
+
+    if (utf8_target) {
+        U8 * prev_char_pos = reghopmaybe3(*curpos, -1, strbeg);
+        if (! prev_char_pos) {
+            return PL_WB_EDGE;
+        }
+
+        /* Back up over Extend and Format.  curpos is always just to the right
+         * of the characater whose value we are getting */
+        do {
+            U8 * prev_prev_char_pos;
+            if ((prev_prev_char_pos = reghopmaybe3((U8 *) prev_char_pos,
+                                                   -1,
+                                                   strbeg)))
+            {
+                wb = getWB_VAL_UTF8(prev_prev_char_pos, prev_char_pos);
+                *curpos = prev_char_pos;
+                prev_char_pos = prev_prev_char_pos;
+            }
+            else {
+                *curpos = (U8 *) strbeg;
+                return PL_WB_EDGE;
+            }
+        } while (wb == PL_WB_Extend || wb == PL_WB_Format);
+    }
+    else {
+        do {
+            if (*curpos - 2 < strbeg) {
+                *curpos = (U8 *) strbeg;
+                return PL_WB_EDGE;
+            }
+            (*curpos)--;
+            wb = getWB_VAL_CP(*(*curpos - 1));
+        } while (wb == PL_WB_Extend || wb == PL_WB_Format);
+    }
+
+    return wb;
+}
+
 /* returns -1 on failure, $+[0] on success */
 STATIC SSize_t
 S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
@@ -3998,6 +4840,8 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
     int to_complement;  /* Invert the result? */
     _char_class_number classnum;
     bool is_utf8_pat = reginfo->is_utf8_pat;
+    bool match = FALSE;
+
 
 #ifdef DEBUGGING
     GET_RE_DEBUG_FLAGS_DECL;
@@ -4456,8 +5300,8 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
            DEBUG_EXECUTE_r({
                AV *const trie_words
                    = MUTABLE_AV(rexi->data->data[ARG(ST.me)+TRIE_WORDS_OFFSET]);
-               SV ** const tmp = av_fetch( trie_words,
-                   ST.nextword-1, 0 );
+               SV ** const tmp = trie_words
+                        ? av_fetch(trie_words, ST.nextword - 1, 0) : NULL;
                SV *sv= tmp ? sv_newmortal() : NULL;
 
                PerlIO_printf( Perl_debug_log,
@@ -4657,89 +5501,219 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
            break;
        }
 
-       /* XXX Could improve efficiency by separating these all out using a
-        * macro or in-line function.  At that point regcomp.c would no longer
-        * have to set the FLAGS fields of these */
-       case BOUNDL:  /*  /\b/l  */
        case NBOUNDL: /*  /\B/l  */
+            to_complement = 1;
+            /* FALLTHROUGH */
+
+       case BOUNDL:  /*  /\b/l  */
             _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+
+            if (FLAGS(scan) != TRADITIONAL_BOUND) {
+                if (! IN_UTF8_CTYPE_LOCALE) {
+                    Perl_ck_warner(aTHX_ packWARN(WARN_LOCALE),
+                                                B_ON_NON_UTF8_LOCALE_IS_WRONG);
+                }
+                goto boundu;
+            }
+
+           if (utf8_target) {
+               if (locinput == reginfo->strbeg)
+                   ln = isWORDCHAR_LC('\n');
+               else {
+                    ln = isWORDCHAR_LC_utf8(reghop3((U8*)locinput, -1,
+                                                        (U8*)(reginfo->strbeg)));
+               }
+                n = (NEXTCHR_IS_EOS)
+                    ? isWORDCHAR_LC('\n')
+                    : isWORDCHAR_LC_utf8((U8*)locinput);
+           }
+           else { /* Here the string isn't utf8 */
+               ln = (locinput == reginfo->strbeg)
+                     ? isWORDCHAR_LC('\n')
+                     : isWORDCHAR_LC(UCHARAT(locinput - 1));
+                n = (NEXTCHR_IS_EOS)
+                    ? isWORDCHAR_LC('\n')
+                    : isWORDCHAR_LC(nextchr);
+           }
+            if (to_complement ^ (ln == n)) {
+                sayNO;
+            }
+           break;
+
+       case NBOUND:  /*  /\B/   */
+            to_complement = 1;
             /* FALLTHROUGH */
+
        case BOUND:   /*  /\b/   */
-       case BOUNDU:  /*  /\b/u  */
+           if (utf8_target) {
+                goto bound_utf8;
+            }
+            goto bound_ascii_match_only;
+
+       case NBOUNDA: /*  /\B/a  */
+            to_complement = 1;
+            /* FALLTHROUGH */
+
        case BOUNDA:  /*  /\b/a  */
-       case NBOUND:  /*  /\B/   */
+
+          bound_ascii_match_only:
+            /* Here the string isn't utf8, or is utf8 and only ascii characters
+             * are to match \w.  In the latter case looking at the byte just
+             * prior to the current one may be just the final byte of a
+             * multi-byte character.  This is ok.  There are two cases:
+             * 1) it is a single byte character, and then the test is doing
+             *    just what it's supposed to.
+             * 2) it is a multi-byte character, in which case the final byte is
+             *    never mistakable for ASCII, and so the test will say it is
+             *    not a word character, which is the correct answer. */
+            ln = (locinput == reginfo->strbeg)
+                 ? isWORDCHAR_A('\n')
+                 : isWORDCHAR_A(UCHARAT(locinput - 1));
+            n = (NEXTCHR_IS_EOS)
+                ? isWORDCHAR_A('\n')
+                : isWORDCHAR_A(nextchr);
+            if (to_complement ^ (ln == n)) {
+                sayNO;
+            }
+           break;
+
        case NBOUNDU: /*  /\B/u  */
-       case NBOUNDA: /*  /\B/a  */
-           /* was last char in word? */
-           if (utf8_target
-               && FLAGS(scan) != REGEX_ASCII_RESTRICTED_CHARSET
-               && FLAGS(scan) != REGEX_ASCII_MORE_RESTRICTED_CHARSET)
-           {
-               if (locinput == reginfo->strbeg)
-                   ln = '\n';
-               else {
-                   const U8 * const r =
-                            reghop3((U8*)locinput, -1, (U8*)(reginfo->strbeg));
+            to_complement = 1;
+            /* FALLTHROUGH */
 
-                   ln = utf8n_to_uvchr(r, (U8*) reginfo->strend - r,
-                                                                   0, uniflags);
-               }
-               if (FLAGS(scan) != REGEX_LOCALE_CHARSET) {
-                   ln = isWORDCHAR_uni(ln);
-                    if (NEXTCHR_IS_EOS)
-                        n = 0;
-                    else {
-                        LOAD_UTF8_CHARCLASS_ALNUM();
-                        n = swash_fetch(PL_utf8_swash_ptrs[_CC_WORDCHAR], (U8*)locinput,
-                                                                utf8_target);
-                    }
-               }
-               else {
-                   ln = isWORDCHAR_LC_uvchr(ln);
-                   n = NEXTCHR_IS_EOS ? 0 : isWORDCHAR_LC_utf8((U8*)locinput);
-               }
+       case BOUNDU:  /*  /\b/u  */
+
+          boundu:
+           if (utf8_target) {
+
+              bound_utf8:
+                switch((bound_type) FLAGS(scan)) {
+                    case TRADITIONAL_BOUND:
+                        ln = (locinput == reginfo->strbeg)
+                             ? isWORDCHAR_L1('\n')
+                             : isWORDCHAR_utf8(reghop3((U8*)locinput, -1,
+                                                                (U8*)(reginfo->strbeg)));
+                        n = (NEXTCHR_IS_EOS)
+                            ? isWORDCHAR_L1('\n')
+                            : isWORDCHAR_utf8((U8*)locinput);
+                        match = ln != n;
+                        break;
+                    case GCB_BOUND:
+                        if (locinput == reginfo->strbeg || NEXTCHR_IS_EOS) {
+                            match = TRUE; /* GCB always matches at begin and
+                                             end */
+                        }
+                        else {
+                            /* Find the gcb values of previous and current
+                             * chars, then see if is a break point */
+                            match = isGCB(getGCB_VAL_UTF8(
+                                                reghop3((U8*)locinput,
+                                                        -1,
+                                                        (U8*)(reginfo->strbeg)),
+                                                (U8*) reginfo->strend),
+                                          getGCB_VAL_UTF8((U8*) locinput,
+                                                        (U8*) reginfo->strend));
+                        }
+                        break;
+
+                    case SB_BOUND: /* Always matches at begin and end */
+                        if (locinput == reginfo->strbeg || NEXTCHR_IS_EOS) {
+                            match = TRUE;
+                        }
+                        else {
+                            match = isSB(getSB_VAL_UTF8(
+                                                reghop3((U8*)locinput,
+                                                        -1,
+                                                        (U8*)(reginfo->strbeg)),
+                                                (U8*) reginfo->strend),
+                                          getSB_VAL_UTF8((U8*) locinput,
+                                                        (U8*) reginfo->strend),
+                                          (U8*) reginfo->strbeg,
+                                          (U8*) locinput,
+                                          (U8*) reginfo->strend,
+                                          utf8_target);
+                        }
+                        break;
+
+                    case WB_BOUND:
+                        if (locinput == reginfo->strbeg || NEXTCHR_IS_EOS) {
+                            match = TRUE;
+                        }
+                        else {
+                            match = isWB(PL_WB_UNKNOWN,
+                                         getWB_VAL_UTF8(
+                                                reghop3((U8*)locinput,
+                                                        -1,
+                                                        (U8*)(reginfo->strbeg)),
+                                                (U8*) reginfo->strend),
+                                          getWB_VAL_UTF8((U8*) locinput,
+                                                        (U8*) reginfo->strend),
+                                          (U8*) reginfo->strbeg,
+                                          (U8*) locinput,
+                                          (U8*) reginfo->strend,
+                                          utf8_target);
+                        }
+                        break;
+                }
            }
-           else {
+           else {  /* Not utf8 target */
+                switch((bound_type) FLAGS(scan)) {
+                    case TRADITIONAL_BOUND:
+                        ln = (locinput == reginfo->strbeg)
+                            ? isWORDCHAR_L1('\n')
+                            : isWORDCHAR_L1(UCHARAT(locinput - 1));
+                        n = (NEXTCHR_IS_EOS)
+                            ? isWORDCHAR_L1('\n')
+                            : isWORDCHAR_L1(nextchr);
+                        match = ln != n;
+                        break;
 
-               /* Here the string isn't utf8, or is utf8 and only ascii
-                * characters are to match \w.  In the latter case looking at
-                * the byte just prior to the current one may be just the final
-                * byte of a multi-byte character.  This is ok.  There are two
-                * cases:
-                * 1) it is a single byte character, and then the test is doing
-                *      just what it's supposed to.
-                * 2) it is a multi-byte character, in which case the final
-                *      byte is never mistakable for ASCII, and so the test
-                *      will say it is not a word character, which is the
-                *      correct answer. */
-               ln = (locinput != reginfo->strbeg) ?
-                   UCHARAT(locinput - 1) : '\n';
-               switch (FLAGS(scan)) {
-                   case REGEX_UNICODE_CHARSET:
-                       ln = isWORDCHAR_L1(ln);
-                       n = NEXTCHR_IS_EOS ? 0 : isWORDCHAR_L1(nextchr);
-                       break;
-                   case REGEX_LOCALE_CHARSET:
-                       ln = isWORDCHAR_LC(ln);
-                       n = NEXTCHR_IS_EOS ? 0 : isWORDCHAR_LC(nextchr);
-                       break;
-                   case REGEX_DEPENDS_CHARSET:
-                       ln = isWORDCHAR(ln);
-                       n = NEXTCHR_IS_EOS ? 0 : isWORDCHAR(nextchr);
-                       break;
-                   case REGEX_ASCII_RESTRICTED_CHARSET:
-                   case REGEX_ASCII_MORE_RESTRICTED_CHARSET:
-                       ln = isWORDCHAR_A(ln);
-                       n = NEXTCHR_IS_EOS ? 0 : isWORDCHAR_A(nextchr);
-                       break;
-                   default:
-                       Perl_croak(aTHX_ "panic: Unexpected FLAGS %u in op %u", FLAGS(scan), OP(scan));
-               }
+                    case GCB_BOUND:
+                        if (locinput == reginfo->strbeg || NEXTCHR_IS_EOS) {
+                            match = TRUE; /* GCB always matches at begin and
+                                             end */
+                        }
+                        else {  /* Only CR-LF combo isn't a GCB in 0-255
+                                   range */
+                            match =    UCHARAT(locinput - 1) != '\r'
+                                    || UCHARAT(locinput) != '\n';
+                        }
+                        break;
+
+                    case SB_BOUND: /* Always matches at begin and end */
+                        if (locinput == reginfo->strbeg || NEXTCHR_IS_EOS) {
+                            match = TRUE;
+                        }
+                        else {
+                            match = isSB(getSB_VAL_CP(UCHARAT(locinput -1)),
+                                         getSB_VAL_CP(UCHARAT(locinput)),
+                                         (U8*) reginfo->strbeg,
+                                         (U8*) locinput,
+                                         (U8*) reginfo->strend,
+                                         utf8_target);
+                        }
+                        break;
+
+                    case WB_BOUND:
+                        if (locinput == reginfo->strbeg || NEXTCHR_IS_EOS) {
+                            match = TRUE;
+                        }
+                        else {
+                            match = isWB(PL_WB_UNKNOWN,
+                                         getWB_VAL_CP(UCHARAT(locinput -1)),
+                                         getWB_VAL_CP(UCHARAT(locinput)),
+                                         (U8*) reginfo->strbeg,
+                                         (U8*) locinput,
+                                         (U8*) reginfo->strend,
+                                         utf8_target);
+                        }
+                        break;
+                }
            }
-           /* Note requires that all BOUNDs be lower than all NBOUNDs in
-            * regcomp.sym */
-           if (((!ln) == (!n)) == (OP(scan) < NBOUND))
-                   sayNO;
+
+            if (to_complement ^ ! match) {
+                sayNO;
+            }
            break;
 
        case ANYOFL:  /*  /[abc]/l      */
@@ -4873,7 +5847,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
                 locinput += 2;
             }
             else {  /* Handle above Latin-1 code points */
-          utf8_posix_above_latin1:
+              utf8_posix_above_latin1:
                 classnum = (_char_class_number) FLAGS(scan);
                 if (classnum < _FIRST_NON_SWASH_CC) {
 
@@ -4941,38 +5915,6 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
 
        case CLUMP: /* Match \X: logical Unicode character.  This is defined as
                       a Unicode extended Grapheme Cluster */
-           /* From http://www.unicode.org/reports/tr29 (5.2 version).  An
-             extended Grapheme Cluster is:
-
-            CR LF
-            | Prepend* Begin Extend*
-            | .
-
-            Begin is:           ( Special_Begin | ! Control )
-            Special_Begin is:   ( Regional-Indicator+ | Hangul-syllable )
-            Extend is:          ( Grapheme_Extend | Spacing_Mark )
-            Control is:         [ GCB_Control | CR | LF ]
-            Hangul-syllable is: ( T+ | ( L* ( L | ( LVT | ( V | LV ) V* ) T* ) ))
-
-               If we create a 'Regular_Begin' = Begin - Special_Begin, then
-               we can rewrite
-
-                   Begin is ( Regular_Begin + Special Begin )
-
-               It turns out that 98.4% of all Unicode code points match
-               Regular_Begin.  Doing it this way eliminates a table match in
-               the previous implementation for almost all Unicode code points.
-
-              There is a subtlety with Prepend* which showed up in testing.
-              Note that the Begin, and only the Begin is required in:
-               | Prepend* Begin Extend*
-              Also, Begin contains '! Control'.  A Prepend must be a
-              '!  Control', which means it must also be a Begin.  What it
-              comes down to is that if we match Prepend* and then find no
-              suitable Begin afterwards, that if we backtrack the last
-              Prepend, that one will be a suitable Begin.
-           */
-
            if (NEXTCHR_IS_EOS)
                sayNO;
            if  (! utf8_target) {
@@ -4990,147 +5932,27 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
            }
            else {
 
-               /* Utf8: See if is ( CR LF ); already know that locinput <
-                * reginfo->strend, so locinput+1 is in bounds */
-               if ( nextchr == '\r' && locinput+1 < reginfo->strend
-                     && UCHARAT(locinput + 1) == '\n')
-                {
-                   locinput += 2;
-               }
-               else {
-                    STRLEN len;
-
-                   /* In case have to backtrack to beginning, then match '.' */
-                   char *starting = locinput;
-
-                   /* In case have to backtrack the last prepend */
-                   char *previous_prepend = NULL;
-
-                   LOAD_UTF8_CHARCLASS_GCB();
-
-                    /* Match (prepend)*   */
-                    while (locinput < reginfo->strend
-                           && (len = is_GCB_Prepend_utf8(locinput)))
-                    {
-                        previous_prepend = locinput;
-                        locinput += len;
-                    }
+                /* Get the gcb type for the current character */
+                PL_GCB_enum prev_gcb = getGCB_VAL_UTF8((U8*) locinput,
+                                                       (U8*) reginfo->strend);
 
-                   /* As noted above, if we matched a prepend character, but
-                    * the next thing won't match, back off the last prepend we
-                    * matched, as it is guaranteed to match the begin */
-                   if (previous_prepend
-                       && (locinput >=  reginfo->strend
-                           || (! swash_fetch(PL_utf8_X_regular_begin,
-                                            (U8*)locinput, utf8_target)
-                                && ! is_GCB_SPECIAL_BEGIN_START_utf8(locinput)))
-                        )
-                   {
-                       locinput = previous_prepend;
-                   }
-
-                   /* Note that here we know reginfo->strend > locinput, as we
-                    * tested that upon input to this switch case, and if we
-                    * moved locinput forward, we tested the result just above
-                    * and it either passed, or we backed off so that it will
-                    * now pass */
-                   if (swash_fetch(PL_utf8_X_regular_begin,
-                                    (U8*)locinput, utf8_target)) {
-                        locinput += UTF8SKIP(locinput);
+                /* Then scan through the input until we get to the first
+                 * character whose type is supposed to be a gcb with the
+                 * current character.  (There is always a break at the
+                 * end-of-input) */
+                locinput += UTF8SKIP(locinput);
+                while (locinput < reginfo->strend) {
+                    PL_GCB_enum cur_gcb = getGCB_VAL_UTF8((U8*) locinput,
+                                                         (U8*) reginfo->strend);
+                    if (isGCB(prev_gcb, cur_gcb)) {
+                        break;
                     }
-                    else if (! is_GCB_SPECIAL_BEGIN_START_utf8(locinput)) {
-
-                       /* Here did not match the required 'Begin' in the
-                        * second term.  So just match the very first
-                        * character, the '.' of the final term of the regex */
-                       locinput = starting + UTF8SKIP(starting);
-                        goto exit_utf8;
-                   } else {
-
-                        /* Here is a special begin.  It can be composed of
-                         * several individual characters.  One possibility is
-                         * RI+ */
-                        if ((len = is_GCB_RI_utf8(locinput))) {
-                            locinput += len;
-                            while (locinput < reginfo->strend
-                                   && (len = is_GCB_RI_utf8(locinput)))
-                            {
-                                locinput += len;
-                            }
-                        } else if ((len = is_GCB_T_utf8(locinput))) {
-                            /* Another possibility is T+ */
-                            locinput += len;
-                            while (locinput < reginfo->strend
-                                && (len = is_GCB_T_utf8(locinput)))
-                            {
-                                locinput += len;
-                            }
-                        } else {
 
-                            /* Here, neither RI+ nor T+; must be some other
-                             * Hangul.  That means it is one of the others: L,
-                             * LV, LVT or V, and matches:
-                             * L* (L | LVT T* | V * V* T* | LV  V* T*) */
-
-                            /* Match L*           */
-                            while (locinput < reginfo->strend
-                                   && (len = is_GCB_L_utf8(locinput)))
-                            {
-                                locinput += len;
-                            }
-
-                            /* Here, have exhausted L*.  If the next character
-                             * is not an LV, LVT nor V, it means we had to have
-                             * at least one L, so matches L+ in the original
-                             * equation, we have a complete hangul syllable.
-                             * Are done. */
+                    prev_gcb = cur_gcb;
+                    locinput += UTF8SKIP(locinput);
+                }
 
-                            if (locinput < reginfo->strend
-                                && is_GCB_LV_LVT_V_utf8(locinput))
-                            {
-                                /* Otherwise keep going.  Must be LV, LVT or V.
-                                 * See if LVT, by first ruling out V, then LV */
-                                if (! is_GCB_V_utf8(locinput)
-                                        /* All but every TCount one is LV */
-                                    && (valid_utf8_to_uvchr((U8 *) locinput,
-                                                                         NULL)
-                                                                        - SBASE)
-                                        % TCount != 0)
-                                {
-                                    locinput += UTF8SKIP(locinput);
-                                } else {
-
-                                    /* Must be  V or LV.  Take it, then match
-                                     * V*     */
-                                    locinput += UTF8SKIP(locinput);
-                                    while (locinput < reginfo->strend
-                                           && (len = is_GCB_V_utf8(locinput)))
-                                    {
-                                        locinput += len;
-                                    }
-                                }
 
-                                /* And any of LV, LVT, or V can be followed
-                                 * by T*            */
-                                while (locinput < reginfo->strend
-                                       && (len = is_GCB_T_utf8(locinput)))
-                                {
-                                    locinput += len;
-                                }
-                            }
-                        }
-                    }
-
-                    /* Match any extender */
-                    while (locinput < reginfo->strend
-                            && swash_fetch(PL_utf8_X_extend,
-                                            (U8*)locinput, utf8_target))
-                    {
-                        locinput += UTF8SKIP(locinput);
-                    }
-               }
-            exit_utf8:
-               if (locinput > reginfo->strend) sayNO;
            }
            break;
             
@@ -5566,7 +6388,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
                 maxopenparen = 0;
                 /* run the pattern returned from (??{...}) */
 
-        eval_recurse_doit: /* Share code with GOSUB below this line
+              eval_recurse_doit: /* Share code with GOSUB below this line
                             * At this point we expect the stack context to be
                             * set up correctly */
 
@@ -6668,7 +7490,7 @@ NULL
             /* NOTREACHED */
            NOT_REACHED;
 
-       curly_try_B_max:
+          curly_try_B_max:
            /* a successful greedy match: now try to match B */
             if (cur_eval && cur_eval->u.eval.close_paren &&
                 cur_eval->u.eval.close_paren == (U32)ST.paren) {
@@ -6718,7 +7540,7 @@ NULL
 #undef ST
 
        case END: /*  last op of main pattern  */
-           fake_end:
+          fake_end:
            if (cur_eval) {
                /* we've just finished A in /(??{A})B/; now continue with B */
 
@@ -6969,7 +7791,7 @@ NULL
 
         /* this is a point to jump to in order to increment
          * locinput by one character */
-        increment_locinput:
+          increment_locinput:
             assert(!NEXTCHR_IS_EOS);
             if (utf8_target) {
                 locinput += PL_utf8skip[nextchr];
@@ -7042,7 +7864,7 @@ NULL
     sayNO;
     NOT_REACHED;
 
-yes:
+  yes:
     if (yes_state) {
        /* we have successfully completed a subexpression, but we must now
         * pop to the state marked by yes_state and continue from there */
@@ -7103,7 +7925,7 @@ yes:
     result = 1;
     goto final_exit;
 
-no:
+  no:
     DEBUG_EXECUTE_r(
        PerlIO_printf(Perl_debug_log,
             "%*s  %sfailed...%s\n",
@@ -7111,7 +7933,7 @@ no:
             PL_colors[4], PL_colors[5])
        );
 
-no_silent:
+  no_silent:
     if (no_final) {
         if (yes_state) {
             goto yes;
@@ -7362,7 +8184,7 @@ S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p,
     case EXACTFU:
        utf8_flags = reginfo->is_utf8_pat ? FOLDEQ_S2_ALREADY_FOLDED : 0;
 
-    do_exactf: {
+      do_exactf: {
         int c1, c2;
         U8 c1_utf8[UTF8_MAXBYTES+1], c2_utf8[UTF8_MAXBYTES+1];
 
@@ -7523,7 +8345,7 @@ S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p,
             }
        }
        else {
-      utf8_posix:
+          utf8_posix:
             classnum = (_char_class_number) FLAGS(p);
             if (classnum < _FIRST_NON_SWASH_CC) {
 
index 439fa8d..144d6f6 100644 (file)
 #define        MEOL                    5       /* 0x05 Same, assuming multiline: /$/m */
 #define        EOS                     6       /* 0x06 Match "" at end of string: /\z/ */
 #define        GPOS                    7       /* 0x07 Matches where last m//g left off. */
-#define        BOUND                   8       /* 0x08 Match "" at any word boundary using native charset rules for non-utf8 */
-#define        BOUNDL                  9       /* 0x09 Match "" at any locale word boundary */
-#define        BOUNDU                  10      /* 0x0a Match "" at any word boundary using Unicode rules */
-#define        BOUNDA                  11      /* 0x0b Match "" at any word boundary using ASCII rules */
-#define        NBOUND                  12      /* 0x0c Match "" at any word non-boundary using native charset rules for non-utf8 */
-#define        NBOUNDL                 13      /* 0x0d Match "" at any locale word non-boundary */
-#define        NBOUNDU                 14      /* 0x0e Match "" at any word non-boundary using Unicode rules */
-#define        NBOUNDA                 15      /* 0x0f Match "" at any word non-boundary using ASCII rules */
+#define        BOUND                   8       /* 0x08 Match "" at any word boundary using native charset rules for non-utf8, otherwise Unicode rules */
+#define        BOUNDL                  9       /* 0x09 Match "" at any boundary of a given type using locale rules */
+#define        BOUNDU                  10      /* 0x0a Match "" at any boundary of a given type using Unicode rules */
+#define        BOUNDA                  11      /* 0x0b Match "" at any boundary of a given type using ASCII rules */
+#define        NBOUND                  12      /* 0x0c Match "" at any word non-boundary using native charset rules for non-utf8, otherwise Unicode rules */
+#define        NBOUNDL                 13      /* 0x0d Match "" at any boundary of a given type using locale rules */
+#define        NBOUNDU                 14      /* 0x0e Match "" at any boundary of a given type using using Unicode rules */
+#define        NBOUNDA                 15      /* 0x0f Match "" at any boundary of a given type using using ASCII rules */
 #define        REG_ANY                 16      /* 0x10 Match any one character (except newline). */
 #define        SANY                    17      /* 0x11 Match any one character. */
 #define        CANY                    18      /* 0x12 Match any one byte. */
diff --git a/sv.c b/sv.c
index db29380..182176a 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -1616,7 +1616,9 @@ Perl_sv_grow(pTHX_ SV *const sv, STRLEN newlen)
         /* Don't round up on the first allocation, as odds are pretty good that
          * the initial request is accurate as to what is really needed */
         if (SvLEN(sv)) {
-            newlen = PERL_STRLEN_ROUNDUP(newlen);
+            STRLEN rounded = PERL_STRLEN_ROUNDUP(newlen);
+            if (rounded > newlen)
+                newlen = rounded;
         }
 #endif
        if (SvLEN(sv) && s) {
@@ -1936,6 +1938,7 @@ Perl_looks_like_number(pTHX_ SV *const sv)
 {
     const char *sbegin;
     STRLEN len;
+    int numtype;
 
     PERL_ARGS_ASSERT_LOOKS_LIKE_NUMBER;
 
@@ -1944,7 +1947,8 @@ Perl_looks_like_number(pTHX_ SV *const sv)
     }
     else
        return SvFLAGS(sv) & (SVf_NOK|SVp_NOK|SVf_IOK|SVp_IOK);
-    return grok_number(sbegin, len, NULL);
+    numtype = grok_number(sbegin, len, NULL);
+    return ((numtype & IS_NUMBER_TRAILING)) ? 0 : numtype;
 }
 
 STATIC bool
@@ -2105,6 +2109,10 @@ S_sv_2iuv_non_preserve(pTHX_ SV *const sv
 
 /* If numtype is infnan, set the NV of the sv accordingly.
  * If numtype is anything else, try setting the NV using Atof(PV). */
+#ifdef USING_MSVC6
+#  pragma warning(push)
+#  pragma warning(disable:4756;disable:4056)
+#endif
 static void
 S_sv_setnv(pTHX_ SV* sv, int numtype)
 {
@@ -2129,6 +2137,9 @@ S_sv_setnv(pTHX_ SV* sv, int numtype)
             SvPOK_on(sv); /* PV is okay, though. */
     }
 }
+#ifdef USING_MSVC6
+#  pragma warning(pop)
+#endif
 
 STATIC bool
 S_sv_2iuv_common(pTHX_ SV *const sv)
@@ -2249,7 +2260,7 @@ S_sv_2iuv_common(pTHX_ SV *const sv)
            sv_upgrade(sv, SVt_PVNV);
 
         if ((numtype & (IS_NUMBER_INFINITY | IS_NUMBER_NAN))) {
-            if (ckWARN(WARN_NUMERIC) && ((numtype & IS_NUMBER_NAN)))
+            if (ckWARN(WARN_NUMERIC) && ((numtype & IS_NUMBER_TRAILING)))
                not_a_number(sv);
             S_sv_setnv(aTHX_ sv, numtype);
             return FALSE;
@@ -3250,14 +3261,6 @@ include SV_GMAGIC.
 */
 
 void
-Perl_sv_copypv(pTHX_ SV *const dsv, SV *const ssv)
-{
-    PERL_ARGS_ASSERT_SV_COPYPV;
-
-    sv_copypv_flags(dsv, ssv, 0);
-}
-
-void
 Perl_sv_copypv_flags(pTHX_ SV *const dsv, SV *const ssv, const I32 flags)
 {
     STRLEN len;
@@ -3528,7 +3531,7 @@ Perl_sv_utf8_upgrade_flags_grow(pTHX_ SV *const sv, const I32 flags, STRLEN extr
        if (extra) SvGROW(sv, SvCUR(sv) + extra);
        return SvCUR(sv);
 
-must_be_utf8:
+      must_be_utf8:
 
        /* Here, the string should be converted to utf8, either because of an
         * input flag (two_byte_count = 0), or because a character that
@@ -5961,7 +5964,7 @@ Perl_sv_kill_backrefs()
 */
 
 SV *
-Perl_sv_get_backrefs(pTHX_ SV *const sv)
+Perl_sv_get_backrefs(SV *const sv)
 {
     SV *backrefs= NULL;
 
@@ -8587,13 +8590,13 @@ Perl_sv_gets(pTHX_ SV *const sv, PerlIO *const fp, I32 append)
            goto thats_all_folks;
     }
 
-thats_all_folks:
+  thats_all_folks:
     /* check if we have actually found the separator - only really applies
      * when rslen > 1 */
     if ((rslen > 1 && (STRLEN)(bp - (STDCHAR*)SvPVX_const(sv)) < rslen) ||
          memNE((char*)bp - rslen, rsptr, rslen))
        goto screamer;                          /* go back to the fray */
-thats_really_all_folks:
+  thats_really_all_folks:
     if (shortbuffered)
        cnt += shortbuffered;
        DEBUG_P(PerlIO_printf(Perl_debug_log,
@@ -8621,7 +8624,7 @@ thats_really_all_folks:
        STDCHAR buf[8192];
 #endif
 
-screamer2:
+      screamer2:
        if (rslen) {
             const STDCHAR * const bpe = buf + sizeof(buf);
            bp = buf;
@@ -10840,34 +10843,7 @@ Perl_sv_vcatpvfn(pTHX_ SV *const sv, const char *const pat, const STRLEN patlen,
     sv_vcatpvfn_flags(sv, pat, patlen, args, svargs, svmax, maybe_tainted, SV_GMAGIC|SV_SMAGIC);
 }
 
-#if DOUBLEKIND == DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN || \
-    DOUBLEKIND == DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN || \
-    DOUBLEKIND == DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
-#  define DOUBLE_LITTLE_ENDIAN
-#endif
-
-#ifdef HAS_LONG_DOUBLEKIND
-
-#  if LONG_DOUBLEKIND == LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN || \
-      LONG_DOUBLEKIND == LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN || \
-      LONG_DOUBLEKIND == LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN
-#    define LONGDOUBLE_LITTLE_ENDIAN
-#  endif
-
-#  if LONG_DOUBLEKIND == LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN || \
-      LONG_DOUBLEKIND == LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN || \
-      LONG_DOUBLEKIND == LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN
-#    define LONGDOUBLE_BIG_ENDIAN
-#  endif
-
-#  if LONG_DOUBLEKIND == LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN || \
-      LONG_DOUBLEKIND == LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN
-#    define LONGDOUBLE_X86_80_BIT
-#  endif
-
-#  if LONG_DOUBLEKIND == LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN || \
-      LONG_DOUBLEKIND == LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN
-#    define LONGDOUBLE_DOUBLEDOUBLE
+#ifdef LONGDOUBLE_DOUBLEDOUBLE
 /* The first double can be as large as 2**1023, or '1' x '0' x 1023.
  * The second double can be as small as 2**-1074, or '0' x 1073 . '1'.
  * The sum of them can be '1' . '0' x 2096 . '1', with implied radix point
@@ -10877,10 +10853,8 @@ Perl_sv_vcatpvfn(pTHX_ SV *const sv, const char *const pat, const STRLEN patlen,
  * of dynamically growing buffer might be better, start at just 16 bytes
  * (for example) and grow only when necessary.  Or maybe just by looking
  * at the exponents of the two doubles? */
-#    define DOUBLEDOUBLE_MAXBITS 2098
-#  endif
-
-#endif /* HAS_LONG_DOUBLE */
+#  define DOUBLEDOUBLE_MAXBITS 2098
+#endif
 
 /* vhex will contain the values (0..15) of the hex digits ("nybbles"
  * of 4 bits); 1 for the implicit 1, and the mantissa bits, four bits
@@ -11386,6 +11360,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
 #ifndef FV_ISFINITE
 #  define FV_ISFINITE(x) Perl_isfinite((NV)(x))
 #endif
+        NV nv;
        STRLEN have;
        STRLEN need;
        STRLEN gap;
@@ -12129,19 +12104,25 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
 #ifdef USE_QUADMATH
                 fv = intsize == 'q' ?
                     va_arg(*args, NV) : va_arg(*args, double);
+                nv = fv;
 #elif LONG_DOUBLESIZE > DOUBLESIZE
-                if (intsize == 'q')
+                if (intsize == 'q') {
                     fv = va_arg(*args, long double);
-                else
-                    NV_TO_FV(va_arg(*args, double), fv);
+                    nv = fv;
+                } else {
+                    nv = va_arg(*args, double);
+                    NV_TO_FV(nv, fv);
+                }
 #else
-                fv = va_arg(*args, double);
+                nv = va_arg(*args, double);
+                fv = nv;
 #endif
             }
             else
             {
                 if (!infnan) SvGETMAGIC(argsv);
-                NV_TO_FV(SvNV_nomg(argsv), fv);
+                nv = SvNV_nomg(argsv);
+                NV_TO_FV(nv, fv);
             }
 
            need = 0;
@@ -12288,7 +12269,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
                        goto float_converted;
                    }
                } else if ( c == 'f' && !precis ) {
-                   if ((eptr = F0convert(fv, ebuf + sizeof ebuf, &elen)))
+                   if ((eptr = F0convert(nv, ebuf + sizeof ebuf, &elen)))
                        break;
                }
            }
@@ -12316,10 +12297,8 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
                  * should be output as 0x0.0000000000001p-1022 to
                  * match its internal structure. */
 
-                /* Note: fv can be (and often is) long double.
-                 * Here it is explicitly cast to NV. */
-                vend = S_hextract(aTHX_ (NV)fv, &exponent, vhex, NULL);
-                S_hextract(aTHX_ (NV)fv, &exponent, vhex, vend);
+                vend = S_hextract(aTHX_ nv, &exponent, vhex, NULL);
+                S_hextract(aTHX_ nv, &exponent, vhex, vend);
 
 #if NVSIZE > DOUBLESIZE
 #  ifdef HEXTRACT_HAS_IMPLICIT_BIT
@@ -12477,7 +12456,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
                 }
             }
             else {
-                elen = S_infnan_2pv(fv, PL_efloatbuf, PL_efloatsize, plus);
+                elen = S_infnan_2pv(nv, PL_efloatbuf, PL_efloatsize, plus);
                 if (elen) {
                     /* Not affecting infnan output: precision, alt, fill. */
                     if (elen < width) {
@@ -12553,7 +12532,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
                     if (!qfmt)
                         Perl_croak_nocontext("panic: quadmath invalid format \"%s\"", ptr);
                     elen = quadmath_snprintf(PL_efloatbuf, PL_efloatsize,
-                                             qfmt, fv);
+                                             qfmt, nv);
                     if ((IV)elen == -1)
                         Perl_croak_nocontext("panic: quadmath_snprintf failed, format \"%s|'", qfmt);
                     if (qfmt != ptr)
@@ -14965,9 +14944,10 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags,
     for (i = 0; i < POSIX_CC_COUNT; i++) {
         PL_XPosix_ptrs[i] = sv_dup_inc(proto_perl->IXPosix_ptrs[i], param);
     }
+    PL_GCB_invlist = sv_dup_inc(proto_perl->IGCB_invlist, param);
+    PL_SB_invlist = sv_dup_inc(proto_perl->ISB_invlist, param);
+    PL_WB_invlist = sv_dup_inc(proto_perl->IWB_invlist, param);
     PL_utf8_mark       = sv_dup_inc(proto_perl->Iutf8_mark, param);
-    PL_utf8_X_regular_begin    = sv_dup_inc(proto_perl->Iutf8_X_regular_begin, param);
-    PL_utf8_X_extend   = sv_dup_inc(proto_perl->Iutf8_X_extend, param);
     PL_utf8_toupper    = sv_dup_inc(proto_perl->Iutf8_toupper, param);
     PL_utf8_totitle    = sv_dup_inc(proto_perl->Iutf8_totitle, param);
     PL_utf8_tolower    = sv_dup_inc(proto_perl->Iutf8_tolower, param);
index 7e7cd71..a114f06 100644 (file)
@@ -278,7 +278,9 @@ d_lgamma_r='undef'
 d_libm_lib_version='undef'
 d_link='undef'
 d_llrint='undef'
+d_llrintl='undef'
 d_llround='undef'
+d_llroundl='undef'
 d_localtime64='undef'
 d_localtime_r='undef'
 d_localtime_r_needs_tzset='undef'
@@ -290,7 +292,9 @@ d_logb='undef'
 d_longdbl='undef'
 d_longlong='undef'
 d_lrint='undef'
+d_lrintl='undef'
 d_lround='undef'
+d_lroundl='undef'
 d_lseekproto='undef'
 d_lstat='undef'
 d_madvise='undef'
index c917d4f..5449b46 100644 (file)
@@ -482,3 +482,15 @@ print "not " unless &{sub :lvalue { "a" }} eq "a";
 print "ok $test - &{sub :lvalue...}\n"; $test++;
 print "not " unless ref +(map{sub :lvalue { "a" }} 1)[0] eq "CODE";
 print "ok $test - map{sub :lvalue...}\n"; $test++;
+
+# Used to crash [perl #123711]
+0-5x-l{0};
+
+# Used to fail an assertion [perl #123617]
+eval '"$a{ 1 m// }"; //';
+
+# Pending token stack overflow [perl #123677]
+{
+ local $SIG{__WARN__}=sub{};
+ eval q|s)$0{0h());qx(@0);qx(@0);qx(@0)|;
+}
index c81b2dc..6f3c4b5 100644 (file)
@@ -1,7 +1,7 @@
 #!./perl
-# Test $!
+# Test $/
 
-print "1..38\n";
+print "1..39\n";
 
 $test_count = 1;
 $teststring = "1\n12\n123\n1234\n1234\n12345\n\n123456\n1234567\n";
@@ -34,8 +34,13 @@ test_record(*TESTFILE);
 close TESTFILE;
 $test_count_end = $test_count;  # Needed to know how many tests to skip
 
+$/ = "\n";
+my $note = "\$/ preserved when set to bad value";
+# none of the setting of $/ to bad values should modify its value
 test_bad_setting();
-
+print +($/ ne "\n" ? "not " : "") .
+  "ok $test_count # \$/ preserved when set to bad value\n";
+++$test_count;
 
 # Now for the tricky bit--full record reading
 if ($^O eq 'VMS') {
index f7e54a9..a84cfc2 100644 (file)
@@ -527,6 +527,13 @@ $x[FILE1->[0]];
 # Used to crash [perl #123542]
 eval 's /${<>{}) //';
 
+# Also used to crash [perl #123652]
+eval{$1=eval{a:}};
+
+# Used to fail assertions [perl #123753]
+eval "map+map";
+eval "grep+grep";
+
 # Add new tests HERE (above this line)
 
 # bug #74022: Loop on characters in \p{OtherIDContinue}
index f5190f9..4e747c4 100644 (file)
@@ -1,6 +1,6 @@
 #!./perl -w
 
-print "1..4016\n";
+print "1..4216\n";
 my $test = 0;
 
 my %templates = (
@@ -67,15 +67,17 @@ for my $bom (0, 1) {
            # handles are not implicitly "use utf8", but don't FIXME that
            # right now, as here we're testing the input filter itself.
 
-           for my $expect ("N", "\xFF", "\x{100}", "\x{010a}", "\x{0a23}",
-                           "\x{10000}", "\x{64321}", "\x{10FFFD}",
-                           "\x{1000a}", # 0xD800 0xDC0A
-                           "\x{12800}", # 0xD80A 0xDC00
-                          ) {
+           for my $expect (
+               "N", "\x{010a}", "\x{0a23}", "\x{64321}", "\x{10FFFD}",
+               "\x{1000a}", # 0xD800 0xDC0A
+               "\x{12800}", # 0xD80A 0xDC00
+               # explore a bunch of bit-width boundaries
+               map { chr((1 << $_) - 1), chr(1 << $_) } 7 .. 20
+           ) {
                # A space so that the UTF-16 heuristic triggers - " '" gives two
                # characters of ASCII.
                my $write = " '$expect'";
-               my $name = 'chrs ' . join ', ', map {ord $_} split '', $expect;
+               my $name = 'chrs ' . join ', ', map {sprintf "%#x", ord $_} split '', $expect;
                test($enc, $write, $expect, $bom, $nl, $name);
            }
 
index dd1be65..5f88a7d 100644 (file)
@@ -5,10 +5,23 @@ BEGIN {
     @INC = '../lib';
 }
 
-BEGIN { require "./test.pl"; }
+BEGIN { require "./test.pl"; require "./charset_tools.pl"; }
 
-plan(tests => 1);
+plan(tests => 3);
 
 # It is important that the script contains at least one newline character
 # that can be expanded to \r\n on DOSish systems.
-fresh_perl_is("\xEF\xBB\xBFprint 1;\nprint 2", "12", {}, "script starts with a BOM" );
+fresh_perl_is(byte_utf8a_to_utf8n("\xEF\xBB\xBF") . "print 1;\nprint 2", "12", {}, "script starts with a BOM" );
+
+# Big- and little-endian UTF-16
+for my $end (0, 1) {
+       my $encoding = $end ? 'UTF-16LE' : 'UTF-16BE';
+       my $prog = join '', map chr($_), map {
+               $end ? @$_[0, 1] : @$_[1, 0]
+       } (
+                # Create UTF-16.
+               [ 0xFE, 0xFF ], map [ 0, utf8::native_to_unicode(ord($_)) ],
+                                                    split //, "print 1;\nprint 2"
+       );
+       fresh_perl_is($prog, "12", {}, "BOM indicates $encoding");
+}
index 26fc8c7..a5e02af 100644 (file)
@@ -19,6 +19,15 @@ Number found where operator expected at - line 4, near "myfunc 1"
 syntax error at - line 4, near "myfunc 1"
 Execution of - aborted due to compilation errors.
 ########
+# NAME (Missing operator before ${?) [perl #123737]
+0${
+EXPECT
+Scalar found where operator expected at - line 1, near "0${"
+       (Missing operator before ${?)
+syntax error at - line 1, near "0$"
+Missing right curly or square bracket at - line 1, at end of line
+Execution of - aborted due to compilation errors.
+########
 # NAME Unterminated here-doc in string eval
 eval "<<foo"; die $@
 EXPECT
@@ -186,6 +195,32 @@ Constant(qq): Call to &{$^H{qr}} did not return a defined value at - line 3, wit
 Constant(q): Call to &{$^H{qr}} did not return a defined value at - line 3, within pattern
 Execution of - aborted due to compilation errors.
 ########
+# NAME Failed constant overloading should not cause a double free
+use overload;
+BEGIN { overload::constant q => sub {}; undef *^H }
+undef(1,2);
+undef(1,2);
+undef(1,2);
+undef(1,2);
+undef(1,2);
+undef(1,2);
+undef(1,2);
+undef(1,2);
+undef(1,2);
+"a"
+EXPECT
+Too many arguments for undef operator at - line 3, near "2)"
+Too many arguments for undef operator at - line 4, near "2)"
+Too many arguments for undef operator at - line 5, near "2)"
+Too many arguments for undef operator at - line 6, near "2)"
+Too many arguments for undef operator at - line 7, near "2)"
+Too many arguments for undef operator at - line 8, near "2)"
+Too many arguments for undef operator at - line 9, near "2)"
+Too many arguments for undef operator at - line 10, near "2)"
+Too many arguments for undef operator at - line 11, near "2)"
+Constant(q) unknown at - line 12, near ""a""
+- has too many errors.
+########
 # NAME Unterminated delimiter for here document
 <<"foo
 EXPECT
index 009a102..bb0eb9e 100644 (file)
 
     Use of /g modifier is meaningless in split
 
+    The bitwise feature is experimental                        [Perl_ck_bitop]
+
     Possible precedence problem on bitwise %c operator [Perl_ck_bitop]
 
     Mandatory Warnings 
@@ -417,7 +419,7 @@ $a <=> $b;          # OP_NCMP
 use 5.015;
 __SUB__        ;               # OP_RUNCV
 [];                    # OP_ANONLIST
-grep /42/, (1,2);      # OP_GREP, not warned about, in the "everything" & "void_unusual" category
+grep /42/, (1,2);      # OP_GREP. Not warned about (yet). Grep git logs for void_unusual to see why...
 EXPECT
 Useless use of a constant ("111") in void context at - line 2.
 Useless use of repeat (x) in void context at - line 3.
@@ -467,17 +469,6 @@ Useless use of __SUB__ in void context at - line 61.
 Useless use of anonymous array ([]) in void context at - line 62.
 ########
 # op.c
-use warnings 'void_unusual' ; close STDIN ;
-grep /42/, (1,2);      # OP_GREP
-no warnings 'void_unusual';
-grep /42/, (1,2);      # OP_GREP
-use warnings 'everything';
-grep /42/, (1,2);      # OP_GREP
-EXPECT
-Unusual use of grep in void context at - line 3.
-Unusual use of grep in void context at - line 7.
-########
-# op.c
 use warnings 'void' ; close STDIN ;
 my $x = sort (2,1,3);
 no warnings 'void' ;
@@ -1512,6 +1503,81 @@ split /blah/g, "blah";
 EXPECT
 Use of /g modifier is meaningless in split at - line 4.
 ########
+use feature "bitwise";
+$_ = $_ | $_;
+$_ = $_ & $_;
+$_ = $_ ^ $_;
+$_ = ~$_;
+$_ = $_ |. $_;
+$_ = $_ &. $_;
+$_ = $_ ^. $_;
+$_ = ~.$_;
+$_ |= $_;
+$_ &= $_;
+$_ ^= $_;
+$_ |.= $_;
+$_ &.= $_;
+$_ ^.= $_;
+use warnings "experimental::bitwise";
+$_ = $_ | $_;
+$_ = $_ & $_;
+$_ = $_ ^ $_;
+$_ = ~$_;
+$_ = $_ |. $_;
+$_ = $_ &. $_;
+$_ = $_ ^. $_;
+$_ = ~.$_;
+$_ |= $_;
+$_ &= $_;
+$_ ^= $_;
+$_ |.= $_;
+$_ &.= $_;
+$_ ^.= $_;
+no warnings "experimental::bitwise";
+$_ = $_ | $_;
+$_ = $_ & $_;
+$_ = $_ ^ $_;
+$_ = ~$_;
+$_ = $_ |. $_;
+$_ = $_ &. $_;
+$_ = $_ ^. $_;
+$_ = ~.$_;
+$_ |= $_;
+$_ &= $_;
+$_ ^= $_;
+$_ |.= $_;
+$_ &.= $_;
+$_ ^.= $_;
+EXPECT
+The bitwise feature is experimental at - line 2.
+The bitwise feature is experimental at - line 3.
+The bitwise feature is experimental at - line 4.
+The bitwise feature is experimental at - line 5.
+The bitwise feature is experimental at - line 6.
+The bitwise feature is experimental at - line 7.
+The bitwise feature is experimental at - line 8.
+The bitwise feature is experimental at - line 9.
+The bitwise feature is experimental at - line 10.
+The bitwise feature is experimental at - line 11.
+The bitwise feature is experimental at - line 12.
+The bitwise feature is experimental at - line 13.
+The bitwise feature is experimental at - line 14.
+The bitwise feature is experimental at - line 15.
+The bitwise feature is experimental at - line 17.
+The bitwise feature is experimental at - line 18.
+The bitwise feature is experimental at - line 19.
+The bitwise feature is experimental at - line 20.
+The bitwise feature is experimental at - line 21.
+The bitwise feature is experimental at - line 22.
+The bitwise feature is experimental at - line 23.
+The bitwise feature is experimental at - line 24.
+The bitwise feature is experimental at - line 25.
+The bitwise feature is experimental at - line 26.
+The bitwise feature is experimental at - line 27.
+The bitwise feature is experimental at - line 28.
+The bitwise feature is experimental at - line 29.
+The bitwise feature is experimental at - line 30.
+########
 # op.c
 use warnings 'precedence';
 $a = $b & $c == $d;
@@ -1522,6 +1588,25 @@ $a = $b >= $c ^ $d;
 $a = $b <= $c | $d;
 $a = $b <=> $c & $d;
 $a &= $b == $c; $a |= $b == $c; $a ^= $b == $c; # shouldn't warn
+{
+ use experimental 'bitwise';
+ $a = $b & $c == $d;
+ $a = $b ^ $c != $d;
+ $a = $b | $c > $d;
+ $a = $b < $c & $d;
+ $a = $b >= $c ^ $d;
+ $a = $b <= $c | $d;
+ $a = $b <=> $c & $d;
+ $a &= $b == $c; $a |= $b == $c; $a ^= $b == $c; # shouldn't warn
+ $a = $b &. $c == $d;
+ $a = $b ^. $c != $d;
+ $a = $b |. $c > $d;
+ $a = $b < $c &. $d;
+ $a = $b >= $c ^. $d;
+ $a = $b <= $c |. $d;
+ $a = $b <=> $c &. $d;
+ $a &.= $b == $c; $a |.= $b == $c; $a ^.= $b == $c; # shouldn't warn
+}
 no warnings 'precedence';
 $a = $b & $c == $d;
 $a = $b ^ $c != $d;
@@ -1530,6 +1615,25 @@ $a = $b < $c & $d;
 $a = $b >= $c ^ $d;
 $a = $b <= $c | $d;
 $a = $b <=> $c & $d;
+{
+ use experimental 'bitwise';
+ $a = $b & $c == $d;
+ $a = $b ^ $c != $d;
+ $a = $b | $c > $d;
+ $a = $b < $c & $d;
+ $a = $b >= $c ^ $d;
+ $a = $b <= $c | $d;
+ $a = $b <=> $c & $d;
+ $a &= $b == $c; $a |= $b == $c; $a ^= $b == $c; # shouldn't warn
+ $a = $b &. $c == $d;
+ $a = $b ^. $c != $d;
+ $a = $b |. $c > $d;
+ $a = $b < $c &. $d;
+ $a = $b >= $c ^. $d;
+ $a = $b <= $c |. $d;
+ $a = $b <=> $c &. $d;
+ $a &.= $b == $c; $a |.= $b == $c; $a ^.= $b == $c; # shouldn't warn
+}
 EXPECT
 Possible precedence problem on bitwise & operator at - line 3.
 Possible precedence problem on bitwise ^ operator at - line 4.
@@ -1538,6 +1642,20 @@ Possible precedence problem on bitwise & operator at - line 6.
 Possible precedence problem on bitwise ^ operator at - line 7.
 Possible precedence problem on bitwise | operator at - line 8.
 Possible precedence problem on bitwise & operator at - line 9.
+Possible precedence problem on bitwise & operator at - line 13.
+Possible precedence problem on bitwise ^ operator at - line 14.
+Possible precedence problem on bitwise | operator at - line 15.
+Possible precedence problem on bitwise & operator at - line 16.
+Possible precedence problem on bitwise ^ operator at - line 17.
+Possible precedence problem on bitwise | operator at - line 18.
+Possible precedence problem on bitwise & operator at - line 19.
+Possible precedence problem on bitwise &. operator at - line 21.
+Possible precedence problem on bitwise ^. operator at - line 22.
+Possible precedence problem on bitwise |. operator at - line 23.
+Possible precedence problem on bitwise &. operator at - line 24.
+Possible precedence problem on bitwise ^. operator at - line 25.
+Possible precedence problem on bitwise |. operator at - line 26.
+Possible precedence problem on bitwise &. operator at - line 27.
 ########
 # op.c
 use integer;
index 0c6a16a..3f15db0 100644 (file)
@@ -143,3 +143,18 @@ Wide character (U+100) in pattern match (m//) at - line 10.
 Wide character (U+100) in pattern match (m//) at - line 11.
 Wide character (U+100) in pattern match (m//) at - line 12.
 Wide character (U+100) in pattern match (m//) at - line 12.
+########
+# NAME \b{} in non-UTF-8 locale
+eval { require POSIX; POSIX->import("locale_h") };
+if ($@) {
+    print("SKIPPED\n# no POSIX\n"),exit;
+}
+use warnings 'locale';
+use locale;
+setlocale(&POSIX::LC_CTYPE, "C");
+"a" =~ /\b{gcb}/l;
+no warnings 'locale';
+"a" =~ /\b{gcb}/l;
+EXPECT
+Use of \b{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale at - line 8.
+Use of \b{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale at - line 8.
index 502af60..6a6cdf4 100644 (file)
@@ -227,6 +227,9 @@ sub is_locale_utf8 ($) { # Return a boolean as to if core Perl thinks the input
     # On z/OS, even locales marked as UTF-8 aren't.
     return 0 if ord "A" != 65;
 
+    eval { require POSIX; import POSIX 'locale_h'; };
+    return 0 if ! defined &POSIX::LC_CTYPE;
+
     my $locale = shift;
 
     use locale;
@@ -272,8 +275,11 @@ sub find_utf8_ctype_locale (;$) { # Return the name of a locale that core Perl
                                   # tries all locales it can find on the
                                   # platform
     my $locales_ref = shift;
-    return if !defined &POSIX::LC_CTYPE;
+
     if (! defined $locales_ref) {
+        eval { require POSIX; import POSIX 'locale_h'; };
+        return if ! defined &POSIX::LC_CTYPE;
+
         my @locales = find_locales(&POSIX::LC_CTYPE(),
                                    1 # Reject iffy locales.
                                   );
index f8515fb..b93ed74 100644 (file)
@@ -407,7 +407,9 @@ is $ProtoTest::Proto, '$', 'prototypes are visible in attr handlers';
         attributes->import(shift, shift, lc shift) if $_[2]; ()
     }
     $_ = 32487;
-    my $sub = sub : Const { $_ };
+    my $sub = eval '+sub : Const { $_ }';
+    ::is $w, '',
+     'no warning for :const applied to closure protosub via attributes.pm';
     undef $_;
     ::is &$sub, 32487,
         'applying const attr via attributes.pm';
index f946d8b..abcfc26 100644 (file)
@@ -15,7 +15,7 @@ BEGIN {
 # If you find tests are failing, please try adding names to tests to track
 # down where the failure is, and supply your new names as a patch.
 # (Just-in-time test naming)
-plan tests => 174 + (10*13*2) + 5;
+plan tests => 194 + (10*13*2) + 5;
 
 # numerics
 ok ((0xdead & 0xbeef) == 0x9ead);
@@ -473,6 +473,47 @@ SKIP: {
   is(~~$str, $ref, "use bytes with long replacement");
 }
 
+# New string- and number-specific bitwise ops
+{
+  use feature "bitwise";
+  no warnings "experimental::bitwise";
+  is "22" & "66", 2,    'numeric & with strings';
+  is "22" | "66", 86,   'numeric | with strings';
+  is "22" ^ "66", 84,   'numeric ^ with strings';
+  is ~"22" & 0xff, 233, 'numeric ~ with string';
+  is 22 &. 66, 22,     '&. with numbers';
+  is 22 |. 66, 66,     '|. with numbers';
+  is 22 ^. 66, "\4\4", '^. with numbers';
+  is ~.22, "\xcd\xcd", '~. with number';
+  $_ = "22";
+  is $_ &= "66", 2,  'numeric &= with strings';
+  $_ = "22";
+  is $_ |= "66", 86, 'numeric |= with strings';
+  $_ = "22";
+  is $_ ^= "66", 84, 'numeric ^= with strings';
+  $_ = 22;
+  is $_ &.= 66, 22,     '&.= with numbers';
+  $_ = 22;
+  is $_ |.= 66, 66,     '|.= with numbers';
+  $_ = 22;
+  is $_ ^.= 66, "\4\4", '^.= with numbers';
+
+ # signed vs. unsigned
+ ok ((~0 > 0 && do { use integer; ~0 } == -1));
+
+ my $bits = 0;
+ for (my $i = ~0; $i; $i >>= 1) { ++$bits; }
+ my $cusp = 1 << ($bits - 1);
+
+ ok (($cusp & -1) > 0 && do { use integer; $cusp & -1 } < 0);
+ ok (($cusp | 1) > 0 && do { use integer; $cusp | 1 } < 0);
+ ok (($cusp ^ 1) > 0 && do { use integer; $cusp ^ 1 } < 0);
+ ok ((1 << ($bits - 1)) == $cusp &&
+     do { use integer; 1 << ($bits - 1) } == -$cusp);
+ ok (($cusp >> 1) == ($cusp / 2) &&
+    do { use integer; abs($cusp >> 1) } == ($cusp / 2));
+}
+
 # ref tests
 
 my %res;
index 760c412..6e56d67 100644 (file)
@@ -106,14 +106,15 @@ sub testwarn {
            vec($default, $i, 2) = 1;
        }
        $registered = $default;
+       vec($registered, $warnings::LAST_BIT/2, 2) = 1;
     }
 
     BEGIN { check_bits( ${^WARNING_BITS}, "\0" x $warnings::BYTES, 'all bits off via "no warnings"' ) }
     testwarn("\0" x $warnings::BYTES, 'no bits');
 
-    use warnings qw(everything);
+    use warnings;
     BEGIN { check_bits( ${^WARNING_BITS}, $default,
-                       'all bits on via "use warnings qw(everything)"' ); }
+                       'default bits on via "use warnings"' ); }
     BEGIN { testwarn($default, 'all'); }
     # run-time :
     # the warning mask has been extended by warnings::register
index a0b98f1..7fbeca0 100644 (file)
@@ -58,7 +58,7 @@ for (qw(getc pos readline readlink undef umask <> <FOO> <$foo> -f)) {
 eval q# sub f ($) { } f $x / 2; #;
 is( $@, '', "'/' correctly parsed as arithmetic operator" );
 eval q# sub f ($):lvalue { $y } f $x /= 2; #;
-is( $@, '', "'/=' correctly parsed as assigment operator" );
+is( $@, '', "'/=' correctly parsed as assignment operator" );
 eval q# sub f ($) { } f $x /2; #;
 like( $@, qr/^Search pattern not terminated/,
     "Caught unterminated search pattern error message: empty subroutine" );
diff --git a/t/op/dump.t b/t/op/dump.t
new file mode 100644 (file)
index 0000000..a2e320f
--- /dev/null
@@ -0,0 +1,56 @@
+#!./perl
+
+# Minimally test if dump() behaves as expected
+
+BEGIN {
+    chdir 't' if -d 't';
+    @INC = qw(. ../lib);
+    require './test.pl';
+
+    skip_all_if_miniperl();
+}
+
+use Config;
+use File::Temp qw(tempdir);
+use Cwd qw(getcwd);
+
+skip_all("only tested on devel builds")
+  unless $Config{usedevel};
+
+# there may be other operating systems where it makes sense, but
+# there are some where it isn't, so limit the platforms we test
+# this on
+skip_all("no point in dumping on $^O")
+  unless $^O =~ /^(linux|.*bsd|solaris)$/;
+
+# execute in a work directory so File::Temp can clean up core dumps
+my $tmp = tempdir(CLEANUP => 1);
+
+my $start = getcwd;
+
+chdir $tmp
+  or skip_all("Cannot chdir to work directory");
+
+plan(2);
+
+# depending on how perl is built there may be extra output after
+# the A such as "Aborted".
+
+fresh_perl_like(<<'PROG', qr/\AA(?!B\z)/, {}, "plain dump quits");
+++$|;
+print qq(A);
+dump;
+print qq(B);
+PROG
+
+fresh_perl_like(<<'PROG', qr/A(?!B\z)/, {}, "dump with label quits");
+++$|;
+print qq(A);
+dump foo;
+foo:
+print qq(B);
+PROG
+
+END {
+  chdir $start if defined $start;
+}
index 081d280..e695923 100644 (file)
--- a/t/op/gv.t
+++ b/t/op/gv.t
@@ -12,7 +12,7 @@ BEGIN {
 
 use warnings;
 
-plan( tests => 271 );
+plan( tests => 273 );
 
 # type coercion on assignment
 $foo = 'foo';
@@ -1066,6 +1066,9 @@ is runperl(prog =>
   "Undefined subroutine &main::foo called at -e line 1.\n",
   "gv_try_downgrade does not anonymise CVs referenced elsewhere";
 
+SKIP: {
+    skip_if_miniperl("no dynamic loading on miniperl, so can't load IO::File", 4);
+
 package glob_constant_test {
   sub foo { 42 }
   use constant bar => *foo;
@@ -1073,6 +1076,16 @@ package glob_constant_test {
   ::is eval { bar->() }, eval { &{+bar} },
     'glob_constant->() is not mangled at compile time';
   ::is "$@", "", 'no error from eval { &{+glob_constant} }';
+  use constant quux => do {
+    local *F;
+    my $f = *F;
+    *$f = *STDOUT{IO};
+  };
+  ::is eval { quux->autoflush; 420 }, 420,
+    'glob_constant->method() works';
+  ::is "$@", "", 'no error from eval { glob_constant->method() }';
+}
+
 }
 
 {
index ef8ee4b..dc1ff22 100644 (file)
@@ -27,14 +27,13 @@ my $NaN;
 }
 
 my @PInf = ("Inf", "inf", "INF", "+Inf",
-            "Infinity", "INFINITE",
-            "1.#INF", "1#INF");
+            "Infinity",
+            "1.#INF", "1#INF", "1.#INF00");
 my @NInf = map { "-$_" } grep { ! /^\+/ } @PInf;
 
 my @NaN = ("NAN", "nan", "qnan", "SNAN", "NanQ", "NANS",
-           "1.#QNAN", "+1#SNAN", "-1.#NAN", "1#IND",
-           "NaN123", "NAN(123)", "nan%",
-           "nanonano"); # RIP, Robin Williams.
+           "1.#QNAN", "+1#SNAN", "-1.#NAN", "1#IND", "1.#IND00",
+           "NAN(123)");
 
 my @printf_fmt = qw(e f g a d u o i b x p);
 my @packi_fmt = qw(c C s S l L i I n N v V j J w W U);
@@ -246,14 +245,14 @@ TODO: {
 }
 
 SKIP: {
-    my @FInf = qw(Info Infiniti Infinityz);
+    my @FInf = qw(Infinite Info Inf123 Infiniti Infinityz);
     if ($Config{usequadmath}) {
         skip "quadmath strtoflt128() accepts false infinities", scalar @FInf;
     }
-    # Silence "isn't numeric in addition", that's kind of the point.
-    local $^W = 0;
     for my $i (@FInf) {
-        cmp_ok("$i" + 0, '==', 0, "false infinity $i");
+        # Silence "isn't numeric in addition", that's kind of the point.
+        local $^W = 0;
+        cmp_ok("$i" + 0, '==', $PInf, "false infinity $i");
     }
 }
 
@@ -293,7 +292,12 @@ is($NaN * 2, $NaN, "twice NaN is NaN");
 is($NaN / 2, $NaN, "half of NaN is NaN");
 
 is($NaN * $NaN, $NaN, "NaN * NaN is NaN");
-is($NaN / $NaN, $NaN, "NaN / NaN is NaN");
+SKIP: {
+    if ($NaN == 0) {
+        skip "NaN looks like zero, avoiding dividing by it", 1;
+    }
+    is($NaN / $NaN, $NaN, "NaN / NaN is NaN");
+}
 
 for my $f (@printf_fmt) {
     is(sprintf("%$f", $NaN), "NaN", "$NaN sprintf %$f is NaN");
@@ -343,7 +347,6 @@ is eval { unpack "p", pack 'p', $NaN }, "NaN", "pack p +NaN";
 is eval { unpack "P3", pack 'P', $NaN }, "NaN", "pack P +NaN";
 
 for my $i (@NaN) {
-    local $^W = 0; # warning-ness tested later.
     cmp_ok($i + 0, '!=', $i + 0, "$i is NaN numerically (by not being NaN)");
     is("@{[$i+0]}", "NaN", "$i value stringifies as NaN");
 }
@@ -407,22 +410,6 @@ SKIP: {
     is("a" x $NaN, "", "x NaN");
 }
 
-{
-    my $w;
-    local $SIG{__WARN__} = sub { $w = shift };
-    local $^W = 1;
-    my $a;
-    eval '$a = "nancy" + 1';
-    is($a, "$NaN", "nancy plus one is $NaN");
-    like($w, qr/^Argument "nancy" isn't numeric/, "nancy numify (compile time)");
-
-    my $n = "nanana";
-    my $b;
-    eval '$b = $n + 1';
-    is($b, "$NaN", "$n plus one is $NaN");
-    like($w, qr/^Argument "$n" isn't numeric/, "$n numify (runtime)");
-}
-
 # === Tests combining Inf and NaN ===
 
 # is() okay with $NaN because it uses eq.
@@ -465,4 +452,77 @@ cmp_ok('1e-9999',  '==', 0,     "underflow to 0 (runtime) from pos");
 cmp_ok(-1e-9999,   '==', 0,     "underflow to 0 (compile time) from neg");
 cmp_ok('-1e-9999', '==', 0,     "underflow to 0 (runtime) from neg");
 
+# === Warnings triggered when and only when appropriate ===
+{
+    my $w;
+    local $SIG{__WARN__} = sub { $w = shift };
+    local $^W = 1;
+
+    my $T =
+        [
+         [ "inf",          0, $PInf ],
+         [ "infinity",     0, $PInf ],
+         [ "infxy",        1, $PInf ],
+         [ "inf34",        1, $PInf ],
+         [ "1.#INF",       0, $PInf ],
+         [ "1.#INFx",      1, $PInf ],
+         [ "1.#INF00",     0, $PInf ],
+         [ "1.#INFxy",     1, $PInf ],
+         [ " inf",         0, $PInf ],
+         [ "inf ",         0, $PInf ],
+         [ " inf ",        0, $PInf ],
+
+         [ "nan",          0, $NaN ],
+         [ "nanxy",        1, $NaN ],
+         [ "nan34",        1, $NaN ],
+         [ "nanq",         0, $NaN ],
+         [ "nans",         0, $NaN ],
+         [ "nanx",         1, $NaN ],
+         [ "nanqy",        1, $NaN ],
+         [ "nan(123)",     0, $NaN ],
+         [ "nan(0x123)",   0, $NaN ],
+         [ "nan(123xy)",   1, $NaN ],
+         [ "nan(0x123xy)", 1, $NaN ],
+         [ "nanq(123)",    0, $NaN ],
+         [ "nan(123",      1, $NaN ],
+         [ "nan(",         1, $NaN ],
+         [ "1.#NANQ",      0, $NaN ],
+         [ "1.#QNAN",      0, $NaN ],
+         [ "1.#NANQx",     1, $NaN ],
+         [ "1.#QNANx",     1, $NaN ],
+         [ "1.#IND",       0, $NaN ],
+         [ "1.#IND00",     0, $NaN ],
+         [ "1.#INDxy",     1, $NaN ],
+         [ " nan",         0, $NaN ],
+         [ "nan ",         0, $NaN ],
+         [ " nan ",        0, $NaN ],
+        ];
+
+    for my $t (@$T) {
+        print "# '$t->[0]' compile time\n";
+        my $a;
+        $w = '';
+        eval '$a = "'.$t->[0].'" + 1';
+        is("$a", "$t->[2]", "$t->[0] plus one is $t->[2]");
+        if ($t->[1]) {
+            like($w, qr/^Argument \Q"$t->[0]"\E isn't numeric/,
+                 "$t->[2] numify warn");
+        } else {
+            is($w, "", "no warning expected");
+        }
+        print "# '$t->[0]' runtime\n";
+        my $n = $t->[0];
+        my $b;
+        $w = '';
+        eval '$b = $n + 1';
+        is("$b", "$t->[2]", "$n plus one is $t->[2]");
+        if ($t->[1]) {
+            like($w, qr/^Argument \Q"$n"\E isn't numeric/,
+                 "$n numify warn");
+        } else {
+            is($w, "", "no warning expected");
+        }
+    }
+}
+
 done_testing();
index 25ae754..3207198 100644 (file)
@@ -1,10 +1,13 @@
 #!perl
+
+# Tests too complex for t/base/lex.t
+
 use strict;
 use warnings;
 
 BEGIN { chdir 't' if -d 't'; require './test.pl'; }
 
-plan(tests => 10);
+plan(tests => 19);
 
 {
     no warnings 'deprecated';
@@ -93,3 +96,73 @@ $_ = "rhubarb";
 is ${no strict; \$_}, "rhubarb", '${no strict; ...}';
 is join("", map{no strict; "rhu$_" } "barb"), 'rhubarb',
   'map{no strict;...}';
+
+# [perl #123753]
+fresh_perl_is(
+  '$eq = "ok\n"; print $' . "\0eq\n",
+  "ok\n",
+   { stderr => 1 },
+  '$ <null> ident'
+);
+fresh_perl_is(
+  '@eq = "ok\n"; print @' . "\0eq\n",
+  "ok\n",
+   { stderr => 1 },
+  '@ <null> ident'
+);
+fresh_perl_is(
+  '%eq = ("o"=>"k\n"); print %' . "\0eq\n",
+  "ok\n",
+   { stderr => 1 },
+  '% <null> ident'
+);
+fresh_perl_is(
+  'sub eq { "ok\n" } print &' . "\0eq\n",
+  "ok\n",
+   { stderr => 1 },
+  '& <null> ident'
+);
+fresh_perl_is(
+  '$eq = "ok\n"; print ${*' . "\0eq{SCALAR}}\n",
+  "ok\n",
+   { stderr => 1 },
+  '* <null> ident'
+);
+SKIP: {
+    skip "Different output on EBCDIC (presumably)", 2 if ord("A") != 65;
+    fresh_perl_is(
+      qq'"ab}"ax;&\0z\x8Ao}\x82x;', <<gibberish,
+Bareword found where operator expected at - line 1, near ""ab}"ax"
+       (Missing operator before ax?)
+syntax error at - line 1, near ""ab}"ax"
+Unrecognized character \\x8A; marked by <-- HERE after ab}"ax;&\0z<-- HERE near column 12 at - line 1.
+gibberish
+       { stderr => 1 },
+      'gibberish containing &\0z - used to crash [perl #123753]'
+    );
+    fresh_perl_is(
+      qq'"ab}"ax;&{+z}\x8Ao}\x82x;', <<gibberish,
+Bareword found where operator expected at - line 1, near ""ab}"ax"
+       (Missing operator before ax?)
+syntax error at - line 1, near ""ab}"ax"
+Unrecognized character \\x8A; marked by <-- HERE after }"ax;&{+z}<-- HERE near column 14 at - line 1.
+gibberish
+       { stderr => 1 },
+      'gibberish containing &{+z} - used to crash [perl #123753]'
+    );
+}
+
+fresh_perl_is(
+  '/$a[/<<a',
+  "syntax error at - line 1, next char ;\n" .
+  "Can't find string terminator \"a\" anywhere before EOF at - line 1.\n",
+   { stderr => 1 },
+  '/$a[/<<a with no newline [perl #123712]'
+);
+fresh_perl_is(
+  '/$a[m||/<<a',
+  "syntax error at - line 1, next char ;\n" .
+  "Execution of - aborted due to compilation errors.\n",
+   { stderr => 1 },
+  '/$a[m||/<<a with no newline [perl #123712]'
+);
index 3e26f2f..4583d50 100644 (file)
@@ -634,7 +634,7 @@ SKIP: {
     seek DATA, $data_start, Fcntl::SEEK_SET() or die $!;
 
     is(Colour::H1->getline(), <DATA>, 'read from a file');
-    is(C3::H1->getline(), 'method in C3::H1', 'intial resolution is a method');
+    is(C3::H1->getline(), 'method in C3::H1', 'initial resolution is a method');
 
     *Copy:: = \*C3::;
     *C3:: = \*Colour::;
index 8b464dd..9416ad6 100644 (file)
@@ -12,7 +12,7 @@ my $no_endianness = $] > 5.009 ? '' :
 my $no_signedness = $] > 5.009 ? '' :
   "Signed/unsigned pack modifiers not available on this perl";
 
-plan tests => 14707;
+plan tests => 14708;
 
 use strict;
 use warnings qw(FATAL all);
@@ -2012,3 +2012,7 @@ package o {
 is pack("c", bless [], "o"), chr(42), 'overloading called';
 is $o::str, undef, 'pack "c" does not call string overloading';
 is $o::num, 1,     'pack "c" does call num overloading';
+
+#[perl #123874]: argument underflow leads to corrupt length
+eval q{ pack "pi/x" };
+ok(1, "argument underflow did not crash");
index b6dcc7a..8df5241 100644 (file)
@@ -6,7 +6,7 @@ BEGIN {
 }
 
 require './test.pl';
-plan(tests => 48);
+plan(tests => 47);
 
 # compile time
 
@@ -173,6 +173,3 @@ for(($#that_array)x2) {
     $_ *= 2;
 }
 is($#that_array, 28, 'list repetition propagates lvalue cx to its lhs');
-
-# see [perl #123554]
-ok(!eval '33x~3', "eval 33x~3 should panic, not crash perl");
index 1461b52..ad94b3f 100644 (file)
@@ -25,7 +25,7 @@ if ($^O eq 'MSWin32') {
     ${^WIN32_SLOPPY_STAT} = 0;
 }
 
-plan tests => 113;
+plan tests => 115;
 
 my $Perl = which_perl();
 
@@ -622,6 +622,16 @@ SKIP: {
     is $w, undef, 'no unopened warning from stat _';
 }
 
+{
+    # [perl #123816]
+    # Inappropriate stacking of l?stat with filetests should either work or
+    # give a syntax error, they shouldn't crash.
+    eval { stat -t };
+    ok(1, 'can "stat -t" without crashing');
+       eval { lstat -t };
+    ok(1, 'can "lstat -t" without crashing');
+}
+
 END {
     chmod 0666, $tmpfile;
     unlink_all $tmpfile;
index a13fde4..de30a9b 100644 (file)
@@ -2082,11 +2082,11 @@ foreach my $ord (78, 163, 256) {
 }
 
 # Bug RT #45167 the return value of sprintf sometimes wasn't tainted
-# when the args were tainted. This only occured on the first use of
+# when the args were tainted. This only occurred on the first use of
 # sprintf; after that, its TARG has taint magic attached, so setmagic
 # at the end works.  That's why there are multiple sprintf's below, rather
 # than just one wrapped in an inner loop. Also, any plaintext between
-# fprmat entires would correctly cause tainting to get set. so test with
+# format entries would correctly cause tainting to get set. so test with
 # "%s%s" rather than eg "%s %s".
 
 {
index c45971a..6c38893 100644 (file)
--- a/t/op/tr.t
+++ b/t/op/tr.t
@@ -8,7 +8,7 @@ BEGIN {
     set_up_inc('../lib');
 }
 
-plan tests => 134;
+plan tests => 138;
 
 # Test this first before we extend the stack with other operations.
 # This caused an asan failure due to a bad write past the end of the stack.
@@ -538,4 +538,17 @@ for ("", nullrocow) {
         'tr/a/b/ fails on zero-length ro string';
 }
 
+# Whether they're permitted or not, non-modifying tr/// should not write
+# to read-only values, even with funky flags.
+{ # [perl #123759]
+       eval q{ ('a' =~ /./) =~ tr///d };
+       ok(1, "tr///d on PL_Yes does not assert");
+       eval q{ ('a' =~ /./) =~ tr/a-z/a-z/d };
+       ok(1, "tr/a-z/a-z/d on PL_Yes does not assert");
+       eval q{ ('a' =~ /./) =~ tr///s };
+       ok(1, "tr///s on PL_Yes does not assert");
+       eval q{ *x =~ tr///d };
+       ok(1, "tr///d on glob does not assert");
+}
+
 1;
index 8dac6ec..190ddb7 100644 (file)
@@ -8,7 +8,7 @@ BEGIN {
 # This file uses a specially crafted is() function rather than that found in
 # t/test.pl or Test::More.  Hence, we place this file in directory t/opbasic.
 
-print q(1..28
+print q(1..29
 );
 
 # This is() function is written to avoid ""
@@ -73,4 +73,8 @@ is ("a\o{1000}b", "a" . chr(0x200) . "b");
 
 # This caused a memory fault
 no warnings "utf8";
-is ("abc", eval qq[qq\x{8000_0000}abc\x{8000_0000}])
+is ("abc", eval qq[qq\x{8000_0000}abc\x{8000_0000}]);
+
+# Maybe \x{} should be an error, but if not it should certainly mean \x{0}
+# rather than anything else.
+is ("\x{}", chr(0));
index 991f3c5..6cdc176 100644 (file)
@@ -24,7 +24,7 @@ find({no_chdir => 1, wanted => sub {
           $name =~ s/^\..//;
 
           # Special exemption for Makefile, makefile
-          return if $name =~ m!\A(?:x2p/)?[Mm]akefile\z!;
+          return if $name =~ m!\A[Mm]akefile\z!;
 
           if ($name eq '.git') {
               # Don't scan the .git directory, as its contents are outside
index 9bde2de..b2b33ba 100644 (file)
@@ -1,6 +1,15 @@
-Encode cpan/Encode/encoding.pm 506ec84f1fbbff189c3f4f47b92aff5afc95b98e
+CPAN cpan/CPAN/lib/CPAN/Author.pm 792d7c8fbe6ed45e1244e589a8b712878c5dd2a5
+CPAN cpan/CPAN/lib/CPAN/CacheMgr.pm 132adb7f96014ec7ded45457044ed925d3181475
+CPAN cpan/CPAN/lib/CPAN/FTP.pm 3f0d5fc572c8749a566d73ca892c6c89ce3fb676
+CPAN cpan/CPAN/lib/CPAN/HandleConfig.pm e52052b6ef6d1d664f0ffa6cf01d48a8d1321520
+CPAN cpan/CPAN/lib/CPAN/HTTP/Client.pm 242842ca566fd8e3d776deb549ff758a571ca2e3
+CPAN cpan/CPAN/lib/CPAN/Index.pm 73aee30450127c5ac4dc05abc2c10a8accd4b198
+CPAN cpan/CPAN/lib/CPAN/LWP/UserAgent.pm e09525b0c2377c5ac28b7fad1b6d70c57e343913
+CPAN cpan/CPAN/lib/CPAN/Mirrors.pm 580e74746abaf1628d533015d5b529d82a470af4
+Encode cpan/Encode/encoding.pm baa25e197ba4d5fa228dbf7b440afb5ae18ec5ed
 ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/pm_to_blib.t 71ebcee355691ce374fcad251b12d8b2412462b3
 PerlIO::via::QuotedPrint cpan/PerlIO-via-QuotedPrint/t/QuotedPrint.t ca39f0146e89de02c746e199c45dcb3e5edad691
+Pod::Parser cpan/Pod-Parser/lib/Pod/PlainText.pm f0b490545b4e52e141450d1192d0ca00bd8d7a82
 Test::Simple cpan/Test-Simple/t/Legacy/exit.t 83edbf569d56d8cdbabea552dfe5602ea1c1822e
 Text::Balanced cpan/Text-Balanced/t/01_compile.t 1598cf491a48fa546260a2ec41142abe84da533d
 Text::Balanced cpan/Text-Balanced/t/02_extbrk.t 6ba1b64a4604e822dc2260b8ffcea6b406339ee8
index 2b1a0d2..2061532 100644 (file)
@@ -126,7 +126,7 @@ customized.t - Test that CUSTOMIZED files in Maintainers.pl have not been overwr
 =head1 DESCRIPTION
 
 customized.t checks that files listed in C<Maintainers.pl> that have been C<CUSTOMIZED>
-are not accidently overwritten by CPAN module updates.
+are not accidentally overwritten by CPAN module updates.
 
 =head1 OPTIONS
 
index 9d835ef..7c94aa0 100644 (file)
@@ -197,7 +197,7 @@ while (my $file = <$fh>) {
     $file =~ s/\s+.*//;
     next unless $file =~ /\.(?:c|cpp|h|xs|y)\z/ or $file =~ /^perly\./;
     # OS/2 extensions have never been migrated to ext/, hence the special case:
-    next if $file =~ m!\A(?:ext|dist|cpan|lib|t|os2/OS2|x2p)/!
+    next if $file =~ m!\A(?:ext|dist|cpan|lib|t|os2/OS2)/!
             && $file !~ m!\Aext/DynaLoader/!;
     check_file($file);
 }
index 03377f8..b1b1ff3 100644 (file)
@@ -1,4 +1,4 @@
-# This file is the data file for t/porting/podcheck.t.
+# This file is the data file for porting/podcheck.t.
 # There are three types of lines.
 # Comment lines are white-space only or begin with a '#', like this one.  Any
 #   changes you make to the comment lines will be lost when the file is
@@ -18,6 +18,7 @@ Apache::MP3
 Archive::Extract
 Array::Base
 Attribute::Constant
+autobox
 B::Generate
 B::Lint
 B::Lint::Debug
@@ -270,7 +271,6 @@ pod/perldebguts.pod Verbatim line length including indents exceeds 79 by    34
 pod/perldebtut.pod     Verbatim line length including indents exceeds 79 by    22
 pod/perldebug.pod      Verbatim line length including indents exceeds 79 by    3
 pod/perldelta.pod      Pod NAME already used   1
-pod/perldsc.pod        Verbatim line length including indents exceeds 79 by    4
 pod/perldtrace.pod     Verbatim line length including indents exceeds 79 by    26
 pod/perlfunc.pod       ? Should you be using F<...> or maybe L<...> instead of 1
 pod/perlgit.pod        Verbatim line length including indents exceeds 79 by    12
@@ -311,9 +311,11 @@ pod/perlvms.pod    ? Should you be using F<...> or maybe L<...> instead of 1
 pod/perlwin32.pod      Verbatim line length including indents exceeds 79 by    12
 porting/epigraphs.pod  Verbatim line length including indents exceeds 79 by    16
 porting/expand-macro.pl        Verbatim line length including indents exceeds 79 by    2
-porting/release_managers_guide.pod     Verbatim line length including indents exceeds 79 by    6
+porting/release_managers_guide.pod     Verbatim line length including indents exceeds 79 by    7
 porting/todo.pod       Verbatim line length including indents exceeds 79 by    7
 utils/c2ph     Verbatim line length including indents exceeds 79 by    44
+utils/encguess Apparent broken link    1
+utils/encguess There is no NAME        1
 lib/benchmark.pm       Verbatim line length including indents exceeds 79 by    2
 lib/config.pod ? Should you be using L<...> instead of -1
 lib/extutils/embed.pm  Verbatim line length including indents exceeds 79 by    2
index 2dbf2c4..22114d0 100644 (file)
@@ -1481,7 +1481,7 @@ plan (tests => scalar @files) if ! $regen;
 
 
  # Sort file names so we get consistent results, and to put cpan last,
- # preceeded by the ones that we don't generally parse.  This is because both
+ # preceded by the ones that we don't generally parse.  This is because both
  # these classes are generally parsed only if there is a link to the interior
  # of them, and we have to parse all others first to guarantee that they don't
  # have such a link. 'lib' files come just before these, as some of these are
index 2fe9075..9842ea2 100644 (file)
@@ -62,11 +62,7 @@ my %excuses = (
 foreach (@maybe) {
     if (/\.p[lm]$/) {
         push @victims, $_;
-    } elsif ($_ !~ m{^x2p/a2p}) {
-        # test_prep doesn't (yet) have a dependency on a2p, so it seems a bit
-        # silly adding one (and forcing it to be built) just so that we can open
-        # it and determine that it's *not* a perl program, and hence of no
-        # further interest to us.
+    } else {
         open $fh, '<', $_ or die "Can't open '$_': $!";
         my $line = <$fh>;
         if ($line =~ m{^#!(?:\S*|/usr/bin/env\s+)perl}
index 3d52554..5dad5ef 100644 (file)
@@ -22,7 +22,7 @@ BEGIN {
     skip_all_without_unicode_tables();
 }
 
-plan tests => 759;  # Update this when adding/deleting tests.
+plan tests => 774;  # Update this when adding/deleting tests.
 
 run_tests() unless caller;
 
@@ -1635,6 +1635,65 @@ EOP
                ok(1, "did not crash");
                ok($match, "[bbb...] resolved as character class, not subscript");
        }
+
+       {       # [perl #123755]
+               for my $pat ('(??', '(?P', '(?i-') {
+                       eval qq{ qr/$pat/ };
+                       ok(1, "qr/$pat/ did not crash");
+                       eval qq{ qr/${pat}\x{123}/ };
+                       my $e = $@;
+                       like($e, qr{\x{123}},
+                               "qr/${pat}x/ shows x in error even if it's a wide character");
+               }
+       }
+
+       {
+               # Expect one of these sizes to cause overflow and wrap to negative
+               for my $bits (32, 64) {
+                       my $wrapneg = 2 ** ($bits - 2) * 3;
+                       for my $sign ('', '-') {
+                               my $pat = sprintf "qr/(?%s%u)/", $sign, $wrapneg;
+                               eval $pat;
+                               ok(1, "big backref $pat did not crash");
+                       }
+               }
+       }
+        {
+            # Test that we handle qr/\8888888/ and variants without an infinite loop,
+            # we use a test within a test so we can todo it, and make sure we don't
+            # infinite loop our tests.
+            # NOTE - Do not put quotes in the code!
+            # NOTE - We have to triple escape the backref in the pattern below.
+            my $code='
+                BEGIN{require q(test.pl);}
+                watchdog(3);
+                for my $len (1 .. 20) {
+                    my $eights= q(8) x $len;
+                    eval qq{ qr/\\\\$eights/ };
+                }
+                print q(No infinite loop here!);
+            ';
+            fresh_perl_is($code, "No infinite loop here!", {},
+                "test that we handle things like m/\\888888888/ without infinite loops" );
+        }
+
+       {
+               # [perl #123843] hits SEGV trying to compile this pattern
+               my $match;
+               eval q{ ($match) = ("xxyxxyxy" =~ m{(x+(y(?1))*)}) };
+               ok(1, "compiled GOSUB in CURLYM ok");
+               is($match, 'xxyxxyx', "matched GOSUB in CURLYM");
+       }
+
+       {
+               # [perl #123852] doesn't avoid all the capture-related work with
+               # //n, leading to possible memory corruption
+               eval q{ qr{()(?1)}n };
+               my $error = $@;
+               ok(1, "qr{()(?1)}n didn't crash");
+               like($error, qr{Reference to nonexistent group},
+                               'gave appropriate error for qr{()(?1)}n');
+       }
 } # End of sub run_tests
 
 1;
index 16ecf35..f01e7d8 100644 (file)
@@ -755,10 +755,10 @@ sub run_tests {
        }
 
        my $code1u = "(??{qw(\x{100})})";
-       eval {/^$code1u$/}; norun("reparse embeded unicode norun");
+       eval {/^$code1u$/}; norun("reparse embedded unicode norun");
        {
            use re 'eval';
-           ok("\x{100}" =~ /^$code1u$/, "reparse embeded unicode");
+           ok("\x{100}" =~ /^$code1u$/, "reparse embedded unicode");
        }
     }
 
index ce8d0cf..41cda56 100644 (file)
@@ -1102,7 +1102,7 @@ X(?<=foo.)[YZ]    ..XfooXY..      y       pos     8
 (?P<n>foo)(??{ $+{n} })        snofooefoofoowaa        yM      $+{n}   foo     miniperl cannot load Tie::Hash::NamedCapture
 (?P<=n>foo|bar|baz)    -       c       -       Group name must start with a non-digit word character
 (?P<!n>foo|bar|baz)    -       c       -       Group name must start with a non-digit word character
-(?PX<n>foo|bar|baz)    -       c       -       Sequence (?PX<...) not recognized
+(?PX<n>foo|bar|baz)    -       c       -       Sequence (?PX...) not recognized
 /(?'n'foo|bar|baz)/    snofooewa       y       $1      foo
 /(?'n'foo|bar|baz)/    snofooewa       yM      $+{n}   foo     miniperl cannot load Tie::Hash::NamedCapture
 /(?'n'foo|bar|baz)(?'m'[ew]+)/ snofooewa       yM      $+{n}   foo     miniperl cannot load Tie::Hash::NamedCapture
index dc9c1c8..2c176ef 100644 (file)
@@ -244,7 +244,8 @@ pass "undef *_ in a re-eval does not cause a double free";
 
 # make sure regexp warnings are reported on the right line
 # (we don't care what warning */
-{
+SKIP: {
+    skip("no \\p{Unassigned} under miniperl", 1) if is_miniperl;
     use warnings;
     my $w;
     local $SIG{__WARN__} = sub { $w = "@_" };
index 4abfdf7..452d982 100644 (file)
@@ -142,8 +142,6 @@ my @death =
 '/(?lil:foo)/' => 'Regexp modifier "l" may not appear twice {#} m/(?lil{#}:foo)/',
 '/(?aaia:foo)/' => 'Regexp modifier "a" may appear a maximum of twice {#} m/(?aaia{#}:foo)/',
 '/(?i-l:foo)/' => 'Regexp modifier "l" may not appear after the "-" {#} m/(?i-l{#}:foo)/',
-'/a\b{cde/' => 'Use "\b\{" instead of "\b{" {#} m/a\{#}b{cde/',
-'/a\B{cde/' => 'Use "\B\{" instead of "\B{" {#} m/a\{#}B{cde/',
 
  '/((x)/' => 'Unmatched ( {#} m/({#}(x)/',
 
@@ -188,8 +186,17 @@ my @death =
  '/[z-a]/' => 'Invalid [] range "z-a" {#} m/[z-a{#}]/',
 
  '/\p/' => 'Empty \p{} {#} m/\p{#}/',
-
  '/\P{}/' => 'Empty \P{} {#} m/\P{{#}}/',
+
+'/a\b{cde/' => 'Missing right brace on \b{} {#} m/a\b{{#}cde/',
+'/a\B{cde/' => 'Missing right brace on \B{} {#} m/a\B{{#}cde/',
+
+ '/\b{}/' => 'Empty \b{} {#} m/\b{}{#}/',
+ '/\B{}/' => 'Empty \B{} {#} m/\B{}{#}/',
+
+ '/\b{gc}/' => "'gc' is an unknown bound type {#} m/\\b{gc{#}}/",
+ '/\B{gc}/' => "'gc' is an unknown bound type {#} m/\\B{gc{#}}/",
+
  '/(?[[[:word]]])/' => "Unmatched ':' in POSIX class {#} m/(?[[[:word{#}]]])/",
  '/(?[[:word]])/' => "Unmatched ':' in POSIX class {#} m/(?[[:word{#}]])/",
  '/(?[[[:digit: ])/' => "Unmatched '[' in POSIX class {#} m/(?[[[:digit:{#} ])/",
@@ -417,6 +424,8 @@ my @death_utf8 = mark_as_utf8(
  '/(?[ \t + \e # ネ This was supposed to be a comment ])/' => 'Syntax error in (?[...]) in regex m/(?[ \t + \e # ネ This was supposed to be a comment ])/',
  'm/(*ネ)ネ/' => q<Unknown verb pattern 'ネ' {#} m/(*ネ){#}ネ/>,
  '/\cネ/' => "Character following \"\\c\" must be printable ASCII",
+ '/\b{ネ}/' => "'ネ' is an unknown bound type {#} m/\\b{ネ{#}}/",
+ '/\B{ネ}/' => "'ネ' is an unknown bound type {#} m/\\B{ネ{#}}/",
 );
 push @death, @death_utf8;
 
@@ -450,7 +459,10 @@ my @death_utf8_only_under_strict = (
 
 my @warning = (
     'm/\b*\x{100}/' => '\b* matches null string many times {#} m/\b*{#}\x{100}/',
+    '/\b{g}/a' => "Using /u for '\\b{g}' instead of /a {#} m/\\b{g}{#}/",
+    '/\B{gcb}/a' => "Using /u for '\\B{gcb}' instead of /a {#} m/\\B{gcb}{#}/",
     'm/[:blank:]\x{100}/' => 'POSIX syntax [: :] belongs inside character classes {#} m/[:blank:]{#}\x{100}/',
+    'm/[[:cntrl:]][:^ascii:]\x{100}/' =>  'POSIX syntax [: :] belongs inside character classes {#} m/[[:cntrl:]][:^ascii:]{#}\x{100}/',
     "m'\\y\\x{100}'"     => 'Unrecognized escape \y passed through {#} m/\y{#}\x{100}/',
     '/x{3,1}/'   => 'Quantifier {n,m} with n > m can\'t match {#} m/x{3,1}{#}/',
     '/\08/' => '\'\08\' resolved to \'\o{0}8\' {#} m/\08{#}/',
index f8d6723..de793b8 100644 (file)
@@ -23,7 +23,7 @@ BEGIN {
     skip_all_without_unicode_tables();
 }
 
-plan tests => 9;  # Update this when adding/deleting tests.
+plan tests => 25;  # Update this when adding/deleting tests.
 
 use strict;
 use warnings;
@@ -98,6 +98,26 @@ sub run_tests {
         $s =~ /^XX\d{1,10}cde/ for 1..100;
         pass("abs anchored float string should fail quickly");
 
+        # if /.*.../ fails to be optimised well (PREGf_IMPLICIT),
+        # things tend to go quadratic (RT #123743)
+
+        $s = ('0' x 200_000) . '::: 0c';
+        ok ($s !~ /.*:::\s*ab/,    'PREGf_IMPLICIT');
+        ok ($s !~ /.*:::\s*ab/i,   'PREGf_IMPLICIT/i');
+        ok ($s !~ /.*:::\s*ab/m,   'PREGf_IMPLICIT/m');
+        ok ($s !~ /.*:::\s*ab/mi,  'PREGf_IMPLICIT/mi');
+        ok ($s !~ /.*:::\s*ab/s,   'PREGf_IMPLICIT/s');
+        ok ($s !~ /.*:::\s*ab/si,  'PREGf_IMPLICIT/si');
+        ok ($s !~ /.*:::\s*ab/ms,  'PREGf_IMPLICIT/ms');
+        ok ($s !~ /.*:::\s*ab/msi, 'PREGf_IMPLICIT/msi');
+        ok ($s !~ /.*?:::\s*ab/,   'PREGf_IMPLICIT');
+        ok ($s !~ /.*?:::\s*ab/i,  'PREGf_IMPLICIT/i');
+        ok ($s !~ /.*?:::\s*ab/m,  'PREGf_IMPLICIT/m');
+        ok ($s !~ /.*?:::\s*ab/mi, 'PREGf_IMPLICIT/mi');
+        ok ($s !~ /.*?:::\s*ab/s,  'PREGf_IMPLICIT/s');
+        ok ($s !~ /.*?:::\s*ab/si, 'PREGf_IMPLICIT/si');
+        ok ($s !~ /.*?:::\s*ab/ms, 'PREGf_IMPLICIT/ms');
+        ok ($s !~ /.*?:::\s*ab/msi,'PREGf_IMPLICIT/msi');
     }
 
 } # End of sub run_tests
index 828142b..528cf8a 100644 (file)
@@ -298,7 +298,6 @@ EOF
             local $ENV{LANG} = $different;
             local $ENV{PERL_BADLANG} = 0;
 
-            # Can't turn off the warnings, so send them to /dev/null
             if (! fresh_perl_is(<<"EOF", "$difference", { },
                 if (\$ENV{LC_ALL} ne "invalid") {
                     # Make the test pass if the sh didn't accept the ENV set
@@ -327,7 +326,6 @@ EOF
                 local $ENV{LANG} = "invalid";
                 local $ENV{PERL_BADLANG} = 0;
 
-                # Can't turn off the warnings, so send them to /dev/null
                 if (! fresh_perl_is(<<"EOF", 4.2, { },
                     if (\$ENV{LC_ALL} ne "invalid") {
                         print "$difference\n";
index 5005b08..a4518f4 100644 (file)
@@ -8,7 +8,7 @@ BEGIN {
 
 # This test depends on t/lib/Devel/switchd*.pm.
 
-plan(tests => 20);
+plan(tests => 21);
 
 my $r;
 
@@ -302,3 +302,25 @@ is(
   "\$DB::single set to overload"
 );
 }
+
+# [perl #123748]
+#
+# On some platforms, it's possible that calls to getenv() will
+# return a pointer to statically allocated data that may be
+# overwritten by subsequent calls to getenv/putenv/setenv/unsetenv.
+#
+# In perl.c, s = PerlEnv_GetEnv("PERL5OPT") is called, and
+# then moreswitches(s), which, if -d:switchd_empty is given,
+# will call my_setenv("PERL5DB", "use Devel::switchd_empty"),
+# and then return to continue parsing s.
+{
+local $ENV{PERL5OPT} = '-d:switchd_empty';
+
+like(
+  runperl(
+   switches => [ '-Ilib' ], prog => 'print q(hi)',
+  ),
+  qr/hi/,
+ 'putenv does not interfere with PERL5OPT parsing',
+);
+}
index d30214b..21d54b4 100644 (file)
--- a/t/test.pl
+++ b/t/test.pl
@@ -730,6 +730,7 @@ sub _create_runperl { # Create the string to qx in runperl().
     return $runperl;
 }
 
+# sub run_perl {} is alias to below
 sub runperl {
     die "test.pl:runperl() does not take a hashref"
        if ref $_[0] and ref $_[0] eq 'HASH';
@@ -1441,7 +1442,7 @@ sub class_ok {
     # Written so as to count as one test
     local $Level = $Level + 1;
     if( ref $class ) {
-        ok( 0, "$class is a refrence, not a class name" );
+        ok( 0, "$class is a reference, not a class name" );
     }
     else {
         isa_ok($class, $isa, $class_name);
index 50087c1..4cd9a48 100644 (file)
@@ -8,7 +8,7 @@ BEGIN {
 plan tests => 1;
 
 # Looks to see if a "do 'unicore/lib/Sc/Hira.pl'" is called more than once, by
-# putting a compile sub first on the libary path;
+# putting a compile sub first on the library path;
 # XXX Kludge: requires exact path, which might change, and has deep knowledge
 # of how utf8_heavy.pl works, which might also change.
 
index 8307222..91113db 100644 (file)
@@ -121,12 +121,12 @@ for my $cmds (@commands) {
        $^D = 0;
 
        note "# pipe [".join(";", @cmds, @args). "]";
-       if (open my $io, "|-", @cmds, @args) {
+       if (open my $io, "-|", @cmds, @args) {
            print <$io>;
            close $io;
        }
        else {
-           print "Failed pipe open: $!\n";
+           print STDERR "Failed pipe open [",join(";", @cmds, @args),"]: $!\n";
        }
     }
 }
diff --git a/toke.c b/toke.c
index f34bbee..9e0575c 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -186,6 +186,7 @@ static const char* const lex_state_names[] = {
  * FUN1         : not used, except for not, which isn't a UNIOP
  * BOop         : bitwise or or xor
  * BAop         : bitwise and
+ * BCop         : bitwise complement
  * SHop         : shift operator
  * PWop         : power operator
  * PMop         : pattern-matching operator
@@ -222,6 +223,8 @@ static const char* const lex_state_names[] = {
 #define FUN1(f)  return (pl_yylval.ival=f, PL_expect=XOPERATOR, PL_bufptr=s, REPORT((int)FUNC1))
 #define BOop(f)  return ao((pl_yylval.ival=f, PL_expect=XTERM, PL_bufptr=s, (int)BITOROP))
 #define BAop(f)  return ao((pl_yylval.ival=f, PL_expect=XTERM, PL_bufptr=s, (int)BITANDOP))
+#define BCop(f) return pl_yylval.ival=f, PL_expect=XTERM, PL_bufptr = s, \
+                      REPORT('~')
 #define SHop(f)  return ao((pl_yylval.ival=f, PL_expect=XTERM, PL_bufptr=s, (int)SHIFTOP))
 #define PWop(f)  return ao((pl_yylval.ival=f, PL_expect=XTERM, PL_bufptr=s, (int)POWOP))
 #define PMop(f)  return(pl_yylval.ival=f, PL_expect=XTERM, PL_bufptr=s, REPORT((int)MATCHOP))
@@ -500,6 +503,9 @@ S_ao(pTHX_ int toketype)
  * It prints "Missing operator before end of line" if there's nothing
  * after the missing operator, or "... before <...>" if there is something
  * after the missing operator.
+ *
+ * PL_bufptr is expected to point to the start of the thing that was found,
+ * and s after the next token or partial token.
  */
 
 STATIC void
@@ -1246,7 +1252,7 @@ buffer has reached the end of the input text.
 */
 
 #define LEX_FAKE_EOF 0x80000000
-#define LEX_NO_TERM  0x40000000
+#define LEX_NO_TERM  0x40000000 /* here-doc */
 
 bool
 Perl_lex_next_chunk(pTHX_ U32 flags)
@@ -1260,6 +1266,8 @@ Perl_lex_next_chunk(pTHX_ U32 flags)
     bool got_some;
     if (flags & ~(LEX_KEEP_PREVIOUS|LEX_FAKE_EOF|LEX_NO_TERM))
        Perl_croak(aTHX_ "Lexing code internal error (%s)", "lex_next_chunk");
+    if (!(flags & LEX_NO_TERM) && PL_lex_inwhat)
+       return FALSE;
     linestr = PL_parser->linestr;
     buf = SvPVX(linestr);
     if (!(flags & LEX_KEEP_PREVIOUS) &&
@@ -1514,6 +1522,8 @@ Perl_lex_read_space(pTHX_ U32 flags)
                incline(s);
                need_incline = 0;
            }
+       } else if (!c) {
+           s++;
        } else {
            break;
        }
@@ -1790,13 +1800,13 @@ S_skipspace_flags(pTHX_ char *s, U32 flags)
 {
     PERL_ARGS_ASSERT_SKIPSPACE_FLAGS;
     if (PL_lex_formbrack && PL_lex_brackets <= PL_lex_formbrack) {
-       while (s < PL_bufend && SPACE_OR_TAB(*s))
+       while (s < PL_bufend && (SPACE_OR_TAB(*s) || !*s))
            s++;
     } else {
        STRLEN bufptr_pos = PL_bufptr - SvPVX(PL_linestr);
        PL_bufptr = s;
        lex_read_space(flags | LEX_KEEP_PREVIOUS |
-               (PL_sublex_info.sub_inwhat || PL_lex_state == LEX_FORMLINE ?
+               (PL_lex_inwhat || PL_lex_state == LEX_FORMLINE ?
                    LEX_NO_NEXT_CHUNK : 0));
        s = PL_bufptr;
        PL_bufptr = SvPVX(PL_linestr) + bufptr_pos;
@@ -1899,6 +1909,7 @@ S_force_next(pTHX_ I32 type)
        tokereport(type, &NEXTVAL_NEXTTOKE);
     }
 #endif
+    assert(PL_nexttoke < C_ARRAY_LENGTH(PL_nexttype));
     PL_nexttype[PL_nexttoke] = type;
     PL_nexttoke++;
     if (PL_lex_state != LEX_KNOWNEXT) {
@@ -2273,7 +2284,9 @@ S_sublex_start(pTHX)
        return THING;
     }
     if (op_type == OP_CONST) {
-       SV *sv = tokeq(PL_lex_stuff);
+       SV *sv = PL_lex_stuff;
+       PL_lex_stuff = NULL;
+       sv = tokeq(sv);
 
        if (SvTYPE(sv) == SVt_PVIV) {
            /* Overloaded constants, nothing fancy: Convert to SVt_PV: */
@@ -2284,7 +2297,6 @@ S_sublex_start(pTHX)
            sv = nsv;
        }
        pl_yylval.opval = (OP*)newSVOP(op_type, 0, sv);
-       PL_lex_stuff = NULL;
        return THING;
     }
 
@@ -2364,6 +2376,12 @@ S_sublex_push(pTHX)
     PL_lex_stuff = NULL;
     PL_sublex_info.repl = NULL;
 
+    /* Arrange for PL_lex_stuff to be freed on scope exit, in case it gets
+       set for an inner quote-like operator and then an error causes scope-
+       popping.  We must not have a PL_lex_stuff value left dangling, as
+       that breaks assumptions elsewhere.  See bug #123617.  */
+    SAVEGENERICSV(PL_lex_stuff);
+
     PL_bufend = PL_bufptr = PL_oldbufptr = PL_oldoldbufptr = PL_linestart
        = SvPVX(PL_linestr);
     PL_bufend += SvCUR(PL_linestr);
@@ -2468,7 +2486,6 @@ S_sublex_done(pTHX)
        PL_bufend = SvPVX(PL_linestr);
        PL_bufend += SvCUR(PL_linestr);
        PL_expect = XOPERATOR;
-       PL_sublex_info.sub_inwhat = 0;
        return ')';
     }
 }
@@ -3285,72 +3302,43 @@ S_scan_const(pTHX_ char *start)
                /* Here it looks like a named character */
 
                if (*s == 'U' && s[1] == '+') { /* \N{U+...} */
-                   I32 flags = PERL_SCAN_ALLOW_UNDERSCORES
-                               | PERL_SCAN_SILENT_ILLDIGIT
-                               | PERL_SCAN_DISALLOW_PREFIX;
-                   STRLEN len;
-
                    s += 2;         /* Skip to next char after the 'U+' */
-                   len = e - s;
-                   uv = grok_hex(s, &len, &flags, NULL);
-                   if (len == 0
-                    || (  len != (STRLEN)(e - s) && s[len] != '.'
-                       && PL_lex_inpat))
-                   {
-                     bad_NU:
-                       yyerror("Invalid hexadecimal number in \\N{U+...}");
-                       s = e + 1;
-                       continue;
-                   }
-
                    if (PL_lex_inpat) {
-#ifdef EBCDIC
-                       s -= 5;     /* Include the '\N{U+' */
-                        /* On EBCDIC platforms, in \N{U+...}, the '...' is a
-                         * Unicode value, so convert to native so downstream
-                         * code can continue to assume it's native */
-                        /* XXX This should be in the regexp parser,
-                               because doing it here makes /\N{U+41}/ and
-                               =~ '\N{U+41}' do different things.  */
-                       d += my_snprintf(d, e - s + 1 + 1,  /* includes the '}'
-                                                              and the \0 */
-                                         "\\N{U+%X",
-                                         (unsigned int) UNI_TO_NATIVE(uv));
-                        s += 5 + len;
-                        while (*s == '.') {
-                            s++;
-                            len = e - s;
-                            uv = grok_hex(s, &len, &flags, NULL);
-                            if (!len
-                             || (len != (STRLEN)(e - s) && s[len] != '.'))
-                                goto bad_NU;
-                            s--;
-                            d += my_snprintf(
-                                     d, e - s + 1 + 1, ".%X",
-                                     (unsigned int)UNI_TO_NATIVE(uv)
-                                 );
-                            s += len + 1;
+
+                        /* In patterns, we can have \N{U+xxxx.yyyy.zzzz...} */
+                        /* Check the syntax.  */
+                        const char *orig_s;
+                        orig_s = s - 5;
+                        if (!isXDIGIT(*s)) {
+                          bad_NU:
+                            yyerror(
+                                "Invalid hexadecimal number in \\N{U+...}"
+                            );
+                            s = e + 1;
+                            continue;
                         }
-                        *(d++) = '}';
-#else
-                        /* On non-EBCDIC platforms, pass it through unchanged.
-                         * The reason we evaluate the numbers is to make
-                         * sure there wasn't a syntax error. */
-                        const char * const orig_s = s - 5;
-                        while (*s == '.') {
-                            s++;
-                            len = e - s;
-                            uv = grok_hex(s, &len, &flags, NULL);
-                            if (!len
-                             || (len != (STRLEN)(e - s) && s[len] != '.'))
-                                goto bad_NU;
+                        while (++s < e) {
+                            if (isXDIGIT(*s))
+                                continue;
+                            else if ((*s == '.' || *s == '_')
+                                  && isXDIGIT(s[1]))
+                                continue;
+                            goto bad_NU;
                         }
-                        /* +1 is for the '}' */
+
+                        /* Pass everything through unchanged.
+                         * +1 is for the '}' */
                         Copy(orig_s, d, e - orig_s + 1, char);
                         d += e - orig_s + 1;
-#endif
                    }
                    else {  /* Not a pattern: convert the hex to string */
+                        I32 flags = PERL_SCAN_ALLOW_UNDERSCORES
+                               | PERL_SCAN_SILENT_ILLDIGIT
+                               | PERL_SCAN_DISALLOW_PREFIX;
+                        STRLEN len = e - s;
+                        uv = grok_hex(s, &len, &flags, NULL);
+                        if (len == 0 || (len != (STRLEN)(e - s)))
+                            goto bad_NU;
 
                          /* If the destination is not in utf8, unconditionally
                          * recode it to be so.  This is because \N{} implies
@@ -4325,13 +4313,8 @@ Perl_yylex(pTHX)
        SvREFCNT_dec(tmp);
     } );
 
-    switch (PL_lex_state) {
-    case LEX_NORMAL:
-    case LEX_INTERPNORMAL:
-       break;
-
     /* when we've already built the next token, just pull it out of the queue */
-    case LEX_KNOWNEXT:
+    if (PL_nexttoke) {
        PL_nexttoke--;
        pl_yylval = PL_nextval[PL_nexttoke];
        if (!PL_nexttoke) {
@@ -4356,6 +4339,12 @@ Perl_yylex(pTHX)
            }
            return REPORT(next_type == 'p' ? pending_ident() : next_type);
        }
+    }
+
+    switch (PL_lex_state) {
+    case LEX_NORMAL:
+    case LEX_INTERPNORMAL:
+       break;
 
     /* interpolated case modifiers like \L \U, including \Q and \E.
        when we get here, PL_bufptr is at the \
@@ -4974,7 +4963,6 @@ Perl_yylex(pTHX)
        }
        if (PL_lex_formbrack && PL_lex_brackets <= PL_lex_formbrack) {
            PL_lex_state = LEX_FORMLINE;
-           NEXTVAL_NEXTTOKE.ival = 0;
            force_next(FORMRBRACK);
            TOKEN(';');
        }
@@ -5017,7 +5005,6 @@ Perl_yylex(pTHX)
                 incline(s);
            if (PL_lex_formbrack && PL_lex_brackets <= PL_lex_formbrack) {
                PL_lex_state = LEX_FORMLINE;
-               NEXTVAL_NEXTTOKE.ival = 0;
                force_next(FORMRBRACK);
                TOKEN(';');
            }
@@ -5238,11 +5225,18 @@ Perl_yylex(pTHX)
        TERM('%');
     }
     case '^':
+       d = s;
+       bof = FEATURE_BITWISE_IS_ENABLED;
+       if (bof && s[1] == '.')
+           s++;
        if (!PL_lex_allbrackets && PL_lex_fakeeof >=
                (s[1] == '=' ? LEX_FAKEEOF_ASSIGN : LEX_FAKEEOF_BITWISE))
+       {
+           s = d;
            TOKEN(0);
+       }
        s++;
-       BOop(OP_BIT_XOR);
+       BOop(bof ? d == s-2 ? OP_SBIT_XOR : OP_NBIT_XOR : OP_BIT_XOR);
     case '[':
        if (PL_lex_brackets > 100)
            Renew(PL_lex_brackstack, PL_lex_brackets + 10, char);
@@ -5265,7 +5259,11 @@ Perl_yylex(pTHX)
            Eop(OP_SMARTMATCH);
        }
        s++;
-       OPERATOR('~');
+       if ((bof = FEATURE_BITWISE_IS_ENABLED) && *s == '.') {
+           s++;
+           BCop(OP_SCOMPLEMENT);
+       }
+       BCop(bof ? OP_NCOMPLEMENT : OP_COMPLEMENT);
     case ',':
        if (!PL_lex_allbrackets && PL_lex_fakeeof >= LEX_FAKEEOF_COMMA)
            TOKEN(0);
@@ -5338,7 +5336,7 @@ Perl_yylex(pTHX)
                    sv_catsv(sv, PL_lex_stuff);
                    attrs = op_append_elem(OP_LIST, attrs,
                                        newSVOP(OP_CONST, 0, sv));
-                   SvREFCNT_dec(PL_lex_stuff);
+                   SvREFCNT_dec_NN(PL_lex_stuff);
                    PL_lex_stuff = NULL;
                }
                else {
@@ -5492,6 +5490,7 @@ Perl_yylex(pTHX)
        }
        switch (PL_expect) {
        case XTERM:
+       case XTERMORDORDOR:
            PL_lex_brackstack[PL_lex_brackets++] = XOPERATOR;
            PL_lex_allbrackets++;
            OPERATOR(HASHBRACK);
@@ -5734,25 +5733,32 @@ Perl_yylex(pTHX)
                Perl_warner(aTHX_ packWARN(WARN_SEMICOLON), "%s", PL_warn_nosemi);
                CopLINE_inc(PL_curcop);
            }
+           d = s;
+           if ((bof = FEATURE_BITWISE_IS_ENABLED) && *s == '.')
+               s++;
            if (!PL_lex_allbrackets && PL_lex_fakeeof >=
                    (*s == '=' ? LEX_FAKEEOF_ASSIGN : LEX_FAKEEOF_BITWISE)) {
+               s = d;
                s--;
                TOKEN(0);
            }
-           PL_parser->saw_infix_sigil = 1;
-           BAop(OP_BIT_AND);
+           if (d == s) {
+               PL_parser->saw_infix_sigil = 1;
+               BAop(bof ? OP_NBIT_AND : OP_BIT_AND);
+           }
+           else
+               BAop(OP_SBIT_AND);
        }
 
        PL_tokenbuf[0] = '&';
        s = scan_ident(s - 1, PL_tokenbuf + 1,
                       sizeof PL_tokenbuf - 1, TRUE);
+       pl_yylval.ival = (OPpENTERSUB_AMPER<<8);
        if (PL_tokenbuf[1]) {
-           PL_expect = XOPERATOR;
            force_ident_maybe_lex('&');
        }
        else
            PREREF('&');
-       pl_yylval.ival = (OPpENTERSUB_AMPER<<8);
        TERM('&');
 
     case '|':
@@ -5766,12 +5772,15 @@ Perl_yylex(pTHX)
            AOPERATOR(OROR);
        }
        s--;
+       d = s;
+       if ((bof = FEATURE_BITWISE_IS_ENABLED) && *s == '.')
+           s++;
        if (!PL_lex_allbrackets && PL_lex_fakeeof >=
                (*s == '=' ? LEX_FAKEEOF_ASSIGN : LEX_FAKEEOF_BITWISE)) {
-           s--;
+           s = d - 1;
            TOKEN(0);
        }
-       BOop(OP_BIT_OR);
+       BOop(bof ? s == d ? OP_NBIT_OR : OP_SBIT_OR : OP_BIT_OR);
     case '=':
        s++;
        {
@@ -5990,8 +5999,14 @@ Perl_yylex(pTHX)
        PL_tokenbuf[0] = '$';
        s = scan_ident(s, PL_tokenbuf + 1,
                       sizeof PL_tokenbuf - 1, FALSE);
-       if (PL_expect == XOPERATOR)
-           no_op("Scalar", s);
+       if (PL_expect == XOPERATOR) {
+           d = s;
+           if (PL_bufptr > s) {
+               d = PL_bufptr-1;
+               PL_bufptr = PL_oldbufptr;
+           }
+           no_op("Scalar", d);
+       }
        if (!PL_tokenbuf[1]) {
            if (s == PL_bufend)
                yyerror("Final $ should be \\$ or $name");
@@ -7673,10 +7688,8 @@ Perl_yylex(pTHX)
            }
            if (!words)
                words = newNULLLIST();
-           if (PL_lex_stuff) {
-               SvREFCNT_dec(PL_lex_stuff);
-               PL_lex_stuff = NULL;
-           }
+           SvREFCNT_dec_NN(PL_lex_stuff);
+           PL_lex_stuff = NULL;
            PL_expect = XOPERATOR;
            pl_yylval.opval = sawparens(words);
            TOKEN(QWLIST);
@@ -8447,7 +8460,7 @@ S_new_constant(pTHX_ const char *s, STRLEN len, const char *key, STRLEN keylen,
        yyerror_pv(msg, UTF ? SVf_UTF8 : 0);
        return SvREFCNT_inc_simple_NN(sv);
     }
-now_ok:
+  now_ok:
     cv = *cvp;
     if (!pv && s)
        pv = newSVpvn_flags(s, len, SVs_TEMP);
@@ -8582,7 +8595,7 @@ S_scan_ident(pTHX_ char *s, char *dest, STRLEN destlen, I32 ck_uni)
 
     PERL_ARGS_ASSERT_SCAN_IDENT;
 
-    if (isSPACE(*s))
+    if (isSPACE(*s) || !*s)
        s = skipspace(s);
     if (isDIGIT(*s)) {
        while (isDIGIT(*s)) {
@@ -8991,10 +9004,8 @@ S_scan_subst(pTHX_ char *start)
     first_line = CopLINE(PL_curcop);
     s = scan_str(s,FALSE,FALSE,FALSE,NULL);
     if (!s) {
-       if (PL_lex_stuff) {
-           SvREFCNT_dec(PL_lex_stuff);
-           PL_lex_stuff = NULL;
-       }
+       SvREFCNT_dec_NN(PL_lex_stuff);
+       PL_lex_stuff = NULL;
        Perl_croak(aTHX_ "Substitution replacement not terminated");
     }
     PL_multi_start = first_start;      /* so whole substitution is taken together */
@@ -9073,10 +9084,8 @@ S_scan_trans(pTHX_ char *start)
 
     s = scan_str(s,FALSE,FALSE,FALSE,NULL);
     if (!s) {
-       if (PL_lex_stuff) {
-           SvREFCNT_dec(PL_lex_stuff);
-           PL_lex_stuff = NULL;
-       }
+       SvREFCNT_dec_NN(PL_lex_stuff);
+       PL_lex_stuff = NULL;
        Perl_croak(aTHX_ "Transliteration replacement not terminated");
     }
 
@@ -9526,7 +9535,7 @@ S_scan_inputsymbol(pTHX_ char *start)
            else {
                GV *gv;
                ++d;
-intro_sym:
+              intro_sym:
                gv = gv_fetchpv(d,
                                GV_ADDMULTI | ( UTF ? SVf_UTF8 : 0 ),
                                SVt_PV);
@@ -10468,7 +10477,7 @@ Perl_scan_num(pTHX_ const char *start, YYSTYPE* lvalp)
 
     /* if it starts with a v, it could be a v-string */
     case 'v':
-vstring:
+    vstring:
                sv = newSV(5); /* preallocate storage space */
                ENTER_with_name("scan_vstring");
                SAVEFREESV(sv);
index 189b0fd..62458ce 100644 (file)
--- a/uconfig.h
+++ b/uconfig.h
  */
 /*#define HAS_LLRINT           / **/
 
+/* HAS_LLRINTL:
+ *     This symbol, if defined, indicates that the llrintl routine is
+ *     available to return the closest long long value of the long double
+ *     argument according to the current rounding mode.
+ */
+/*#define HAS_LLRINTL          / **/
+
 /* HAS_LLROUND:
  *     This symbol, if defined, indicates that the llround routine is
  *     available to return the nearest long long value.
  */
 /*#define HAS_LLROUND          / **/
 
+/* HAS_LLROUNDL:
+ *     This symbol, if defined, indicates that the llroundl routine is
+ *     available to return the nearest long long value away from zero of
+ *     the long double argument value.
+ */
+/*#define HAS_LLROUNDL         / **/
+
 /* HAS_LOG1P:
  *     This symbol, if defined, indicates that the log1p routine is
  *     available to do the logarithm of 1 plus argument function.
  */
 /*#define HAS_LRINT            / **/
 
+/* HAS_LRINTL:
+ *     This symbol, if defined, indicates that the lrintl routine is
+ *     available to return the closest integral value of the long double
+ *     argument according to the current rounding mode.
+ */
+/*#define HAS_LRINTL           / **/
+
 /* HAS_LROUND:
  *     This symbol, if defined, indicates that the lround routine is
  *     available to return the nearest integral value.
  */
 /*#define HAS_LROUND           / **/
 
+/* HAS_LROUNDL:
+ *     This symbol, if defined, indicates that the lroundl routine is
+ *     available to return the nearest integral value away from zero of
+ *     the long double argument value.
+ */
+/*#define HAS_LROUNDL          / **/
+
 /* HAS_MADVISE:
  *     This symbol, if defined, indicates that the madvise system call is
  *     available to map a file into memory.
 #endif
 
 /* Generated from:
- * 45b69f7afc4f5a9118deafae60c017b206cc0acf790bf42c0c80cfe114a06e47 config_h.SH
- * 37fcea608869353fa4ba82c931a6a9668f955825992315f17a1500b8bcba2bf8 uconfig.sh
+ * 0b960722a4dac6f7f6060a886109bb674ad8acdc08d0d14e9c3af5e1bf9e89a6 config_h.SH
+ * f00aaa095a00a83a70716ff4b9df8a1e7feb27fbb4d9b759d4ca27e6412545b1 uconfig.sh
  * ex: set ro: */
index e168f17..5c1632e 100644 (file)
@@ -271,7 +271,9 @@ d_lgamma_r='undef'
 d_libm_lib_version='undef'
 d_link='undef'
 d_llrint='undef'
+d_llrintl='undef'
 d_llround='undef'
+d_llroundl='undef'
 d_localtime64='undef'
 d_localtime_r='undef'
 d_localtime_r_needs_tzset='undef'
@@ -283,7 +285,9 @@ d_logb='undef'
 d_longdbl='undef'
 d_longlong='undef'
 d_lrint='undef'
+d_lrintl='undef'
 d_lround='undef'
+d_lroundl='undef'
 d_lseekproto='undef'
 d_lstat='undef'
 d_madvise='undef'
index 76cbbb0..3d5b0e5 100644 (file)
@@ -272,7 +272,9 @@ d_lgamma_r='undef'
 d_libm_lib_version='undef'
 d_link='undef'
 d_llrint='undef'
+d_llrintl='undef'
 d_llround='undef'
+d_llroundl='undef'
 d_localtime64='undef'
 d_localtime_r='undef'
 d_localtime_r_needs_tzset='undef'
@@ -284,7 +286,9 @@ d_logb='undef'
 d_longdbl='undef'
 d_longlong='undef'
 d_lrint='undef'
+d_lrintl='undef'
 d_lround='undef'
+d_lroundl='undef'
 d_lseekproto='undef'
 d_lstat='undef'
 d_madvise='undef'
diff --git a/utf8.c b/utf8.c
index 8551e11..efb8d86 100644 (file)
--- a/utf8.c
+++ b/utf8.c
@@ -32,7 +32,6 @@
 #define PERL_IN_UTF8_C
 #include "perl.h"
 #include "inline_invlist.c"
-#include "charclass_invlists.h"
 
 static const char unees[] =
     "Malformed UTF-8 character (unexpected end of string)";
@@ -319,22 +318,6 @@ Perl_uvchr_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags)
 }
 
 /*
-=for apidoc is_utf8_char_buf
-
-This is identical to the macro L</isUTF8_CHAR>.
-
-=cut */
-
-STRLEN
-Perl_is_utf8_char_buf(const U8 *buf, const U8* buf_end)
-{
-
-    PERL_ARGS_ASSERT_IS_UTF8_CHAR_BUF;
-
-    return isUTF8_CHAR(buf, buf_end);
-}
-
-/*
 =for apidoc is_utf8_string
 
 Returns true if the first C<len> bytes of string C<s> form a valid
@@ -806,13 +789,13 @@ Perl_utf8n_to_uvchr(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags)
      *     is the label <malformed>.
      */
 
-malformed:
+  malformed:
 
     if (sv && ckWARN_d(WARN_UTF8)) {
        pack_warn = packWARN(WARN_UTF8);
     }
 
-disallowed:
+  disallowed:
 
     if (flags & UTF8_CHECK_ONLY) {
        if (retlen)
@@ -820,7 +803,7 @@ disallowed:
        return 0;
     }
 
-do_warn:
+  do_warn:
 
     if (pack_warn) {   /* <pack_warn> was initialized to 0, and changed only
                           if warnings are to be raised. */
@@ -1294,19 +1277,26 @@ Perl_utf16_to_utf8(pTHX_ U8* p, U8* d, I32 bytelen, I32 *newlen)
 #define LAST_HIGH_SURROGATE  0xDBFF
 #define FIRST_LOW_SURROGATE  0xDC00
 #define LAST_LOW_SURROGATE   UNICODE_SURROGATE_LAST
-       if (uv >= FIRST_HIGH_SURROGATE && uv <= LAST_HIGH_SURROGATE) {
-           if (p >= pend) {
-               Perl_croak(aTHX_ "Malformed UTF-16 surrogate");
-           } else {
+
+        /* This assumes that most uses will be in the first Unicode plane, not
+         * needing surrogates */
+       if (UNLIKELY(uv >= UNICODE_SURROGATE_FIRST
+                  && uv <= UNICODE_SURROGATE_LAST))
+        {
+            if (UNLIKELY(p >= pend) || UNLIKELY(uv > LAST_HIGH_SURROGATE)) {
+                Perl_croak(aTHX_ "Malformed UTF-16 surrogate");
+            }
+           else {
                UV low = (p[0] << 8) + p[1];
-               p += 2;
-               if (low < FIRST_LOW_SURROGATE || low > LAST_LOW_SURROGATE)
+               if (   UNLIKELY(low < FIRST_LOW_SURROGATE)
+                    || UNLIKELY(low > LAST_LOW_SURROGATE))
+                {
                    Perl_croak(aTHX_ "Malformed UTF-16 surrogate");
+                }
+               p += 2;
                uv = ((uv - FIRST_HIGH_SURROGATE) << 10)
                                        + (low - FIRST_LOW_SURROGATE) + 0x10000;
            }
-       } else if (uv >= FIRST_LOW_SURROGATE && uv <= LAST_LOW_SURROGATE) {
-           Perl_croak(aTHX_ "Malformed UTF-16 surrogate");
        }
 #ifdef EBCDIC
         d = uvoffuni_to_utf8_flags(d, uv, 0);
@@ -1919,7 +1909,7 @@ S_check_locale_boundary_crossing(pTHX_ const U8* const p, const UV result, U8* c
        return result;
     }
 
-bad_crossing:
+  bad_crossing:
 
     /* Failed, have to return the original */
     original = valid_utf8_to_uvchr(p, lenp);
diff --git a/utf8.h b/utf8.h
index aaf878c..8418055 100644 (file)
--- a/utf8.h
+++ b/utf8.h
@@ -393,15 +393,15 @@ Perl's extended UTF-8 means we can have start bytes up to FF.
  * code point whose UTF-8 is known to occupy 2 bytes; they are less efficient
  * than the EIGHT_BIT versions on EBCDIC platforms.  We use the logical '~'
  * operator instead of "<=" to avoid getting compiler warnings.
- * MAX_PORTABLE_UTF8_TWO_BYTE should be exactly all one bits in the lower few
+ * MAX_UTF8_TWO_BYTE should be exactly all one bits in the lower few
  * places, so the ~ works */
 #define UTF8_TWO_BYTE_HI(c)                                                    \
        (__ASSERT_((sizeof(c) ==  1)                                            \
-                  || !(((WIDEST_UTYPE)(c)) & ~MAX_PORTABLE_UTF8_TWO_BYTE))     \
+                  || !(((WIDEST_UTYPE)(c)) & ~MAX_UTF8_TWO_BYTE))              \
         ((U8) __BASE_TWO_BYTE_HI(c, NATIVE_TO_UNI)))
 #define UTF8_TWO_BYTE_LO(c)                                                    \
        (__ASSERT_((sizeof(c) ==  1)                                            \
-                  || !(((WIDEST_UTYPE)(c)) & ~MAX_PORTABLE_UTF8_TWO_BYTE))     \
+                  || !(((WIDEST_UTYPE)(c)) & ~MAX_UTF8_TWO_BYTE))              \
         ((U8) __BASE_TWO_BYTE_LO(c, NATIVE_TO_UNI)))
 
 /* This is illegal in any well-formed UTF-8 in both EBCDIC and ASCII
diff --git a/util.c b/util.c
index 67136fe..9ffdbde 100644 (file)
--- a/util.c
+++ b/util.c
@@ -128,7 +128,12 @@ Perl_safesysmalloc(MEM_SIZE size)
     dTHX;
 #endif
     Malloc_t ptr;
+
+#ifdef USE_MDH
+    if (size + PERL_MEMORY_DEBUG_HEADER_SIZE < size)
+        goto out_of_memory;
     size += PERL_MEMORY_DEBUG_HEADER_SIZE;
+#endif
 #ifdef DEBUGGING
     if ((SSize_t)size < 0)
        Perl_croak_nocontext("panic: malloc, size=%"UVuf, (UV) size);
@@ -175,13 +180,18 @@ Perl_safesysmalloc(MEM_SIZE size)
 
     }
     else {
+#ifdef USE_MDH
+      out_of_memory:
+#endif
+        {
 #ifndef ALWAYS_NEED_THX
-       dTHX;
+            dTHX;
 #endif
-       if (PL_nomemok)
-           ptr =  NULL;
-       else
-           croak_no_mem();
+            if (PL_nomemok)
+                ptr =  NULL;
+            else
+                croak_no_mem();
+        }
     }
     return ptr;
 }
@@ -214,6 +224,8 @@ Perl_safesysrealloc(Malloc_t where,MEM_SIZE size)
     else {
 #ifdef USE_MDH
        where = (Malloc_t)((char*)where-PERL_MEMORY_DEBUG_HEADER_SIZE);
+        if (size + PERL_MEMORY_DEBUG_HEADER_SIZE < size)
+            goto out_of_memory;
        size += PERL_MEMORY_DEBUG_HEADER_SIZE;
        {
            struct perl_memory_debug_header *const header
@@ -292,13 +304,18 @@ Perl_safesysrealloc(Malloc_t where,MEM_SIZE size)
        DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%"UVxf": (%05ld) realloc %ld bytes\n",PTR2UV(ptr),(long)PL_an++,(long)size));
 
        if (ptr == NULL) {
+#ifdef USE_MDH
+          out_of_memory:
+#endif
+            {
 #ifndef ALWAYS_NEED_THX
-           dTHX;
+                dTHX;
 #endif
-           if (PL_nomemok)
-               ptr = NULL;
-           else
-               croak_no_mem();
+                if (PL_nomemok)
+                    ptr = NULL;
+                else
+                    croak_no_mem();
+            }
        }
     }
     return ptr;
@@ -1944,13 +1961,8 @@ bool
 Perl_ckwarn(pTHX_ U32 w)
 {
     /* If lexical warnings have not been set, use $^W.  */
-    if (isLEXWARN_off) {
-       /* TODO: Hardcoding this here sucks, see the commit that added this */
-       if (w == WARN_VOID_UNUSUAL)
-           return FALSE;
-       else
-           return PL_dowarn & G_WARN_ON;
-    }
+    if (isLEXWARN_off)
+       return PL_dowarn & G_WARN_ON;
 
     return ckwarn_common(w);
 }
@@ -1961,13 +1973,8 @@ bool
 Perl_ckwarn_d(pTHX_ U32 w)
 {
     /* If lexical warnings have not been set then default classes warn.  */
-    if (isLEXWARN_off) {
-       /* TODO: Hardcoding this here sucks, see the commit that added this */
-       if (w == WARN_VOID_UNUSUAL)
-           return FALSE;
-       else
-           return TRUE;
-    }
+    if (isLEXWARN_off)
+       return TRUE;
 
     return ckwarn_common(w);
 }
@@ -1975,13 +1982,8 @@ Perl_ckwarn_d(pTHX_ U32 w)
 static bool
 S_ckwarn_common(pTHX_ U32 w)
 {
-    if (PL_curcop->cop_warnings == pWARN_ALL) {
-       /* TODO: Hardcoding this here sucks, see the commit that added this */
-       if (w == WARN_VOID_UNUSUAL)
-           return FALSE;
-       else
-           return TRUE;
-    }
+    if (PL_curcop->cop_warnings == pWARN_ALL)
+       return TRUE;
 
     if (PL_curcop->cop_warnings == pWARN_NONE)
        return FALSE;
@@ -2981,7 +2983,7 @@ Perl_wait4pid(pTHX_ Pid_t pid, int *statusp, int flags)
                *statusp = SvIVX(sv);
                /* The hash iterator is currently on this entry, so simply
                   calling hv_delete would trigger the lazy delete, which on
-                  aggregate does more work, beacuse next call to hv_iterinit()
+                  aggregate does more work, because next call to hv_iterinit()
                   would spot the flag, and have to call the delete routine,
                   while in the meantime any new entries can't re-use that
                   memory.  */
@@ -3951,7 +3953,7 @@ Fill the sv with current working directory
 /* Originally written in Perl by John Bazik; rewritten in C by Ben Sugars.
  * rewritten again by dougm, optimized for use with xs TARG, and to prefer
  * getcwd(3) if available
- * Comments from the orignal:
+ * Comments from the original:
  *     This is a faster version of getcwd.  It's also more dangerous
  *     because you might chdir out of a directory that you can't chdir
  *     back into. */
index c108c4a..216a9d0 100644 (file)
--- a/utils.lst
+++ b/utils.lst
@@ -7,6 +7,7 @@ utils/c2ph      # link = utils/pstruct
 utils/cpan
 utils/corelist
 utils/enc2xs
+utils/encguess
 utils/h2ph
 utils/h2xs
 utils/instmodsh
index 72f7707..27c371f 100644 (file)
@@ -35,9 +35,9 @@ print $fh <<'EOT';
 # Files to be built with variable substitution after miniperl is
 # available.  Dependencies handled manually below (for now).
 
-pl = c2ph.PL corelist.PL cpan.PL h2ph.PL h2xs.PL instmodsh.PL json_pp.PL perlbug.PL perldoc.PL perlivp.PL pl2pm.PL prove.PL ptar.PL ptardiff.PL ptargrep.PL shasum.PL splain.PL libnetcfg.PL piconv.PL enc2xs.PL xsubpp.PL pod2html.PL zipdetails.PL
-plextract = c2ph corelist cpan h2ph h2xs instmodsh json_pp perlbug perldoc perlivp pl2pm prove ptar ptardiff ptargrep shasum splain libnetcfg piconv enc2xs xsubpp pod2html zipdetails
-plextractexe = ./c2ph ./corelist ./cpan ./h2ph ./h2xs ./json_pp ./instmodsh ./perlbug ./perldoc ./perlivp ./pl2pm ./prove ./ptar ./ptardiff ./ptargrep ./shasum ./splain ./libnetcfg ./piconv ./enc2xs ./xsubpp ./pod2html ./zipdetails
+pl = c2ph.PL corelist.PL cpan.PL h2ph.PL h2xs.PL instmodsh.PL json_pp.PL perlbug.PL perldoc.PL perlivp.PL pl2pm.PL prove.PL ptar.PL ptardiff.PL ptargrep.PL shasum.PL splain.PL libnetcfg.PL piconv.PL enc2xs.PL encguess.PL xsubpp.PL pod2html.PL zipdetails.PL
+plextract = c2ph corelist cpan h2ph h2xs instmodsh json_pp perlbug perldoc perlivp pl2pm prove ptar ptardiff ptargrep shasum splain libnetcfg piconv enc2xs encguess xsubpp pod2html zipdetails
+plextractexe = ./c2ph ./corelist ./cpan ./h2ph ./h2xs ./json_pp ./instmodsh ./perlbug ./perldoc ./perlivp ./pl2pm ./prove ./ptar ./ptardiff ./ptargrep ./shasum ./splain ./libnetcfg ./piconv ./enc2xs ./encguess ./xsubpp ./pod2html ./zipdetails
 
 all: $(plextract) 
 
@@ -84,6 +84,8 @@ piconv:               piconv.PL ../config.sh
 
 enc2xs:                enc2xs.PL ../config.sh
 
+enc2xs:                encguess.PL ../config.sh
+
 xsubpp:                xsubpp.PL ../config.sh
 
 zipdetails:    zipdetails.PL ../config.sh
diff --git a/utils/encguess.PL b/utils/encguess.PL
new file mode 100644 (file)
index 0000000..81322f9
--- /dev/null
@@ -0,0 +1,48 @@
+#!/usr/local/bin/perl
+
+use Config;
+use File::Basename qw(&basename &dirname);
+use Cwd;
+
+# List explicitly here the variables you want Configure to
+# generate.  Metaconfig only looks for shell variables, so you
+# have to mention them as if they were shell variables, not
+# %Config entries.  Thus you write
+#  $startperl
+# to ensure Configure will look for $Config{startperl}.
+
+# This forces PL files to create target in same directory as PL file.
+# This is so that make depend always knows where to find PL derivatives.
+my $origdir = cwd;
+chdir dirname($0);
+my $file = basename($0, '.PL');
+$file .= '.com' if $^O eq 'VMS';
+
+open OUT,">$file" or die "Can't create $file: $!";
+
+print "Extracting $file (with variable substitutions)\n";
+
+# In this section, perl variables will be expanded during extraction.
+# You can use $Config{...} to use Configure variables.
+
+print OUT <<"!GROK!THIS!";
+$Config{startperl}
+    eval 'exec $Config{perlpath} -S \$0 \${1+"\$@"}'
+       if \$running_under_some_shell;
+!GROK!THIS!
+
+use File::Spec;
+
+my $enc2xs = File::Spec->catfile(File::Spec->catdir(File::Spec->updir, "cpan", "Encode", "bin"), "encguess");
+
+if (open(ENC2XS, $enc2xs)) {
+    print OUT <ENC2XS>;
+    close ENC2XS;
+} else {
+    die "$0: cannot find '$enc2xs'\n";
+}
+
+close OUT or die "Can't close $file: $!";
+chmod 0755, $file or die "Can't reset permissions for $file: $!\n";
+exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':';
+chdir $origdir;
index 9a8b14d..d082f22 100644 (file)
@@ -769,7 +769,7 @@ sub inc_dirs
 sub build_preamble_if_necessary
 {
     # Increment $VERSION every time this function is modified:
-    my $VERSION     = 3;
+    my $VERSION     = 4;
     my $preamble    = "$Dest_dir/_h2ph_pre.ph";
 
     # Can we skip building the preamble file?
@@ -788,6 +788,11 @@ sub build_preamble_if_necessary
 
     open  PREAMBLE, ">$preamble" or die "Cannot open $preamble:  $!";
        print PREAMBLE "# This file was created by h2ph version $VERSION\n";
+        # Prevent non-portable hex constants from warning.
+        #
+        # We still produce an overflow warning if we can't represent
+        # a hex constant as an integer.
+        print PREAMBLE "no warnings qw(portable);\n";
 
        foreach (sort keys %define) {
            if ($opt_D) {
@@ -814,6 +819,18 @@ DEFINE
                # integer:
                print PREAMBLE
                    "unless (defined &$_) { sub $_() { $1 } }\n\n";
+            } elsif ($define{$_} =~ /^([+-]?0x[\da-f]+)U?L{0,2}$/i) {
+                # hex integer
+                # Special cased, since perl warns on hex integers
+                # that can't be represented in a UV.
+                #
+                # This way we get the warning at time of use, so the user
+                # only gets the warning if they happen to use this
+                # platform-specific definition.
+                my $code = $1;
+                $code = "hex('$code')" if length $code > 10;
+                print PREAMBLE
+                    "unless (defined &$_) { sub $_() { $code } }\n\n";
            } elsif ($define{$_} =~ /^\w+$/) {
                my $def = $define{$_};
                if ($isatype{$def}) {
index 8b0c33b..505ab84 100644 (file)
@@ -285,7 +285,7 @@ utils1 = [.utils]perldoc.com [.utils]c2ph.com [.utils]h2ph.com
 utils2 = [.utils]h2xs.com [.utils]libnetcfg.com [.lib]perlbug.com [.utils]json_pp.com
 utils3 = [.utils]perlivp.com [.lib]splain.com [.utils]pl2pm.com [.utils]xsubpp.com [.utils]pod2html.com [.utils]instmodsh.com
 utils4 = [.utils]enc2xs.com [.utils]piconv.com [.utils]cpan.com [.utils]prove.com [.utils]ptar.com [.utils]ptardiff.com [.utils]shasum.com
-utils5 = [.utils]corelist.com [.utils]ptargrep.com [.utils]zipdetails.com
+utils5 = [.utils]corelist.com [.utils]ptargrep.com [.utils]zipdetails.com [.utils]encguess.com
 
 all : base extras archcorefiles preplibrary [.pod]perltoc.pod
        @ QUALIFIERS := $(MMSQUALIFIERS)
@@ -307,7 +307,7 @@ utils : $(utils1) $(utils2) $(utils3) $(utils4) $(utils5)
 extra.pods : miniperl
        @ @extra_pods.com
 
-PERLDELTA_CURRENT = [.pod]perl5218delta.pod
+PERLDELTA_CURRENT = [.pod]perl5219delta.pod
 
 $(PERLDELTA_CURRENT) : [.pod]perldelta.pod
        Copy/NoConfirm/Log $(MMS$SOURCE) $(PERLDELTA_CURRENT)
@@ -473,6 +473,9 @@ nonxsext : $(LIBPREREQ) preplibrary $(MINIPERL_EXE) [.pod]perlfunc.pod
 [.utils]enc2xs.com : [.utils]enc2xs.PL $(ARCHDIR)Config.pm
        $(MINIPERL) -"I[-.lib]" $(MMS$SOURCE)
 
+[.utils]encguess.com : [.utils]encguess.PL $(ARCHDIR)Config.pm
+       $(MINIPERL) -"I[-.lib]" $(MMS$SOURCE)
+
 [.utils]h2ph.com : [.utils]h2ph.PL $(ARCHDIR)Config.pm
        $(MINIPERL) -"I[-.lib]" $(MMS$SOURCE)
 
index cfc9cb7..0364415 100644 (file)
--- a/vms/vms.c
+++ b/vms/vms.c
@@ -2,7 +2,7 @@
  *
  *    VMS-specific routines for perl5
  *
- *    Copyright (C) 1993-2013 by Charles Bailey and others.
+ *    Copyright (C) 1993-2015 by Charles Bailey and others.
  *
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
@@ -270,10 +270,8 @@ static int vms_debug_on_exception = 0;
 static int vms_debug_fileify = 0;
 
 /* Simple logical name translation */
-static int simple_trnlnm
-   (const char * logname,
-    char * value,
-    int value_len)
+static int
+simple_trnlnm(const char * logname, char * value, int value_len)
 {
     const $DESCRIPTOR(table_dsc, "LNM$FILE_DEV");
     const unsigned long attr = LNM$M_CASE_BLIND;
@@ -310,10 +308,11 @@ static int simple_trnlnm
  *   changes to many other conversion routines.
  */
 
-static int is_unix_filespec(const char *path)
+static int
+is_unix_filespec(const char *path)
 {
-int ret_val;
-const char * pch1;
+    int ret_val;
+    const char * pch1;
 
     ret_val = 0;
     if (strncmp(path,"\"^UP^",5) != 0) {
@@ -335,13 +334,11 @@ const char * pch1;
 /* This routine converts a UCS-2 character to be VTF-7 encoded.
  */
 
-static void ucs2_to_vtf7
-   (char *outspec,
-    unsigned long ucs2_char,
-    int * output_cnt)
+static void
+ucs2_to_vtf7(char *outspec, unsigned long ucs2_char, int * output_cnt)
 {
-unsigned char * ucs_ptr;
-int hex;
+    unsigned char * ucs_ptr;
+    int hex;
 
     ucs_ptr = (unsigned char *)&ucs2_char;
 
@@ -382,11 +379,11 @@ int hex;
  *
  * The return value is the number of characters read from the input string
  */
-static int copy_expand_unix_filename_escape
-  (char *outspec, const char *inspec, int *output_cnt, const int * utf8_fl)
+static int
+copy_expand_unix_filename_escape(char *outspec, const char *inspec, int *output_cnt, const int * utf8_fl)
 {
-int count;
-int utf8_flag;
+    int count;
+    int utf8_flag;
 
     utf8_flag = 0;
     if (utf8_fl)
@@ -578,11 +575,11 @@ int utf8_flag;
  * The return value is the number of characters read from the input
  * string
  */
-static int copy_expand_vms_filename_escape
-  (char *outspec, const char *inspec, int *output_cnt)
+static int
+copy_expand_vms_filename_escape(char *outspec, const char *inspec, int *output_cnt)
 {
-int count;
-int scnt;
+    int count;
+    int scnt;
 
     count = 0;
     *output_cnt = 0;
@@ -669,34 +666,24 @@ int scnt;
  * string, then the passed file specification is probably a UNIX style
  * path.
  */
-static int vms_split_path
-   (const char * path,
-    char * * volume,
-    int * vol_len,
-    char * * root,
-    int * root_len,
-    char * * dir,
-    int * dir_len,
-    char * * name,
-    int * name_len,
-    char * * ext,
-    int * ext_len,
-    char * * version,
-    int * ver_len)
-{
-struct dsc$descriptor path_desc;
-int status;
-unsigned long flags;
-int ret_stat;
-struct filescan_itmlst_2 item_list[9];
-const int filespec = 0;
-const int nodespec = 1;
-const int devspec = 2;
-const int rootspec = 3;
-const int dirspec = 4;
-const int namespec = 5;
-const int typespec = 6;
-const int verspec = 7;
+static int
+vms_split_path(const char * path, char * * volume, int * vol_len, char * * root, int * root_len, 
+               char * * dir, int * dir_len, char * * name, int * name_len,
+               char * * ext, int * ext_len, char * * version, int * ver_len)
+{
+    struct dsc$descriptor path_desc;
+    int status;
+    unsigned long flags;
+    int ret_stat;
+    struct filescan_itmlst_2 item_list[9];
+    const int filespec = 0;
+    const int nodespec = 1;
+    const int devspec = 2;
+    const int rootspec = 3;
+    const int dirspec = 4;
+    const int namespec = 5;
+    const int typespec = 6;
+    const int verspec = 7;
 
     /* Assume the worst for an easy exit */
     ret_stat = -1;
@@ -817,7 +804,9 @@ const int verspec = 7;
 }
 
 /* Routine to determine if the file specification ends with .dir */
-static int is_dir_ext(char * e_spec, int e_len, char * vs_spec, int vs_len) {
+static int
+is_dir_ext(char * e_spec, int e_len, char * vs_spec, int vs_len)
+{
 
     /* e_len must be 4, and version must be <= 2 characters */
     if (e_len != 4 || vs_len > 2)
@@ -1050,7 +1039,8 @@ Perl_vmstrnenv(const char *lnm, char *eqv, unsigned long int idx,
 
 /*{{{ int my_trnlnm(const char *lnm, char *eqv, unsigned long int idx)*/
 /* Define as a function so we can access statics. */
-int Perl_my_trnlnm(pTHX_ const char *lnm, char *eqv, unsigned long int idx)
+int
+Perl_my_trnlnm(pTHX_ const char *lnm, char *eqv, unsigned long int idx)
 {
     int flags = 0;
 
@@ -1252,7 +1242,7 @@ Perl_my_getenv_len(pTHX_ const char *lnm, unsigned long *len, bool sys)
 
       /* Get rid of "000000/ in rooted filespecs */
       if (*len > 7) {
-      char * zeros;
+       char * zeros;
        zeros = strstr(buf, "/000000/");
        if (zeros != NULL) {
          int mlen;
@@ -1781,20 +1771,6 @@ static char *mp_do_rmsexpand(pTHX_ const char *, char *, int, const char *, unsi
 static char *mp_do_fileify_dirspec(pTHX_ const char *, char *, int, int *);
 static char *mp_do_tovmsspec(pTHX_ const char *, char *, int, int, int *);
 
-/* fixup barenames that are directories for internal use.
- * There have been problems with the consistent handling of UNIX
- * style directory names when routines are presented with a name that
- * has no directory delimiters at all.  So this routine will eventually
- * fix the issue.
- */
-static char * fixup_bare_dirnames(const char * name)
-{
-  if (decc_disable_to_vms_logname_translation) {
-/* fix me */
-  }
-  return NULL;
-}
-
 /* 8.3, remove() is now broken on symbolic links */
 static int rms_erase(const char * vmsname);
 
@@ -2438,13 +2414,14 @@ Perl_my_kill(int pid, int sig)
 #define DCL_IVVERB 0x38090
 #endif
 
-int Perl_vms_status_to_unix(int vms_status, int child_flag)
+int
+Perl_vms_status_to_unix(int vms_status, int child_flag)
 {
-int facility;
-int fac_sp;
-int msg_no;
-int msg_status;
-int unix_status;
+  int facility;
+  int fac_sp;
+  int msg_no;
+  int msg_status;
+  int unix_status;
 
   /* Assume the best or the worst */
   if (vms_status & STS$M_SUCCESS)
@@ -2620,9 +2597,10 @@ int unix_status;
  * error statuses that caused the errno value to be set.
  */
 
-int Perl_unix_status_to_vms(int unix_status)
+int
+Perl_unix_status_to_vms(int unix_status)
 {
-int test_unix_status;
+    int test_unix_status;
 
      /* Trivial cases first */
     /*---------------------*/
@@ -3655,9 +3633,8 @@ store_pipelocs(pTHX)
     PerlMem_free(unixdir);
 }
 
-static I32
-Perl_cando_by_name_int
-   (pTHX_ I32 bit, bool effective, const char *fname, int opts);
+static I32 Perl_cando_by_name_int(pTHX_ I32 bit, bool effective,
+                                  const char *fname, int opts);
 #if !defined(PERL_IMPLICIT_CONTEXT)
 #define cando_by_name_int              Perl_cando_by_name_int
 #else
@@ -3804,7 +3781,8 @@ vmspipe_tempfile(pTHX)
 }
 
 
-static int vms_is_syscommand_xterm(void)
+static int
+vms_is_syscommand_xterm(void)
 {
     const static struct dsc$descriptor_s syscommand_dsc = 
       { 11, DSC$K_DTYPE_T, DSC$K_CLASS_S, "SYS$COMMAND" };
@@ -3870,7 +3848,8 @@ static int vms_is_syscommand_xterm(void)
 }
 
 /* If we are on a DECTerm, we can pretend to fork xterms when requested */
-static PerlIO * create_forked_xterm(pTHX_ const char *cmd, const char *mode)
+static PerlIO* 
+create_forked_xterm(pTHX_ const char *cmd, const char *mode)
 {
     int status;
     int ret_stat;
@@ -4466,7 +4445,8 @@ Perl_my_popen(pTHX_ const char *cmd, const char *mode)
 
 /* Routine to close and cleanup a pipe info structure */
 
-static I32 my_pclose_pinfo(pTHX_ pInfo info) {
+static I32
+my_pclose_pinfo(pTHX_ pInfo info) {
 
     unsigned long int retsts;
     int done, n;
@@ -4773,9 +4753,10 @@ my_gconvert(double val, int ndig, int trail, char *buf)
 /*}}}*/
 
 #if defined(__VAX) || !defined(NAML$C_MAXRSS)
-static int rms_free_search_context(struct FAB * fab)
+static int
+rms_free_search_context(struct FAB * fab)
 {
-struct NAM * nam;
+    struct NAM * nam;
 
     nam = fab->fab$l_nam;
     nam->nam$b_nop |= NAM$M_SYNCHK;
@@ -4817,9 +4798,10 @@ struct NAM * nam;
 #define rms_nam_name_type_l_size(nam) \
        (nam.nam$b_name + nam.nam$b_type)
 #else
-static int rms_free_search_context(struct FAB * fab)
+static int
+rms_free_search_context(struct FAB * fab)
 {
-struct NAML * nam;
+    struct NAML * nam;
 
     nam = fab->fab$l_naml;
     nam->naml$b_nop |= NAM$M_SYNCHK;
@@ -4882,7 +4864,8 @@ struct NAML * nam;
  * however in 8.3 the unlink/remove/delete routines will only properly handle
  * them if one of the PCP modes is active.
  */
-static int rms_erase(const char * vmsname)
+static int
+rms_erase(const char * vmsname)
 {
   int status;
   struct FAB myfab = cc$rms_fab;
@@ -4915,28 +4898,28 @@ vms_rename_with_acl(pTHX_ const struct dsc$descriptor_s * vms_src_dsc,
    /* I can not find online documentation for $change_acl
     * it appears to be replaced by $set_security some time ago */
 
-const unsigned int access_mode = 0;
-$DESCRIPTOR(obj_file_dsc,"FILE");
-char *vmsname;
-char *rslt;
-unsigned long int jpicode = JPI$_UIC;
-int aclsts, fndsts, rnsts = -1;
-unsigned int ctx = 0;
-struct dsc$descriptor_s fildsc = {0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0};
-struct dsc$descriptor_s * clean_dsc;
-
-struct myacedef {
-    unsigned char myace$b_length;
-    unsigned char myace$b_type;
-    unsigned short int myace$w_flags;
-    unsigned long int myace$l_access;
-    unsigned long int myace$l_ident;
-} newace = { sizeof(struct myacedef), ACE$C_KEYID, 0,
-            ACE$M_READ | ACE$M_WRITE | ACE$M_DELETE | ACE$M_CONTROL,
-            0},
-            oldace = { sizeof(struct myacedef), ACE$C_KEYID, 0, 0, 0};
-
-struct item_list_3
+    const unsigned int access_mode = 0;
+    $DESCRIPTOR(obj_file_dsc,"FILE");
+    char *vmsname;
+    char *rslt;
+    unsigned long int jpicode = JPI$_UIC;
+    int aclsts, fndsts, rnsts = -1;
+    unsigned int ctx = 0;
+    struct dsc$descriptor_s fildsc = {0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0};
+    struct dsc$descriptor_s * clean_dsc;
+    
+    struct myacedef {
+        unsigned char myace$b_length;
+        unsigned char myace$b_type;
+        unsigned short int myace$w_flags;
+        unsigned long int myace$l_access;
+        unsigned long int myace$l_ident;
+    } newace = { sizeof(struct myacedef), ACE$C_KEYID, 0,
+            ACE$M_READ | ACE$M_WRITE | ACE$M_DELETE | ACE$M_CONTROL,
+            0},
+            oldace = { sizeof(struct myacedef), ACE$C_KEYID, 0, 0, 0};
+
+    struct item_list_3
        findlst[3] = {{sizeof oldace, OSS$_ACL_FIND_ENTRY, &oldace, 0},
                      {sizeof oldace, OSS$_ACL_READ_ENTRY, &oldace, 0},
                      {0,0,0,0}},
@@ -5073,12 +5056,12 @@ struct item_list_3
 int
 Perl_rename(pTHX_ const char *src, const char * dst)
 {
-int retval;
-int pre_delete = 0;
-int src_sts;
-int dst_sts;
-Stat_t src_st;
-Stat_t dst_st;
+    int retval;
+    int pre_delete = 0;
+    int src_sts;
+    int dst_sts;
+    Stat_t src_st;
+    Stat_t dst_st;
 
     /* Validate the source file */
     src_sts = flex_lstat(src, &src_st);
@@ -5841,18 +5824,31 @@ mp_do_rmsexpand
 }
 /*}}}*/
 /* External entry points */
-char *Perl_rmsexpand(pTHX_ const char *spec, char *buf, const char *def, unsigned opt)
-{ return do_rmsexpand(spec,buf,0,def,opt,NULL,NULL); }
-char *Perl_rmsexpand_ts(pTHX_ const char *spec, char *buf, const char *def, unsigned opt)
-{ return do_rmsexpand(spec,buf,1,def,opt,NULL,NULL); }
-char *Perl_rmsexpand_utf8
-  (pTHX_ const char *spec, char *buf, const char *def,
-   unsigned opt, int * fs_utf8, int * dfs_utf8)
-{ return do_rmsexpand(spec,buf,0,def,opt, fs_utf8, dfs_utf8); }
-char *Perl_rmsexpand_utf8_ts
-  (pTHX_ const char *spec, char *buf, const char *def,
-   unsigned opt, int * fs_utf8, int * dfs_utf8)
-{ return do_rmsexpand(spec,buf,1,def,opt, fs_utf8, dfs_utf8); }
+char *
+Perl_rmsexpand(pTHX_ const char *spec, char *buf, const char *def, unsigned opt)
+{
+    return do_rmsexpand(spec, buf, 0, def, opt, NULL, NULL);
+}
+
+char *
+Perl_rmsexpand_ts(pTHX_ const char *spec, char *buf, const char *def, unsigned opt)
+{
+    return do_rmsexpand(spec, buf, 1, def, opt, NULL, NULL);
+}
+
+char *
+Perl_rmsexpand_utf8(pTHX_ const char *spec, char *buf, const char *def,
+                    unsigned opt, int * fs_utf8, int * dfs_utf8)
+{
+    return do_rmsexpand(spec, buf, 0, def, opt, fs_utf8, dfs_utf8);
+}
+
+char *
+Perl_rmsexpand_utf8_ts(pTHX_ const char *spec, char *buf, const char *def,
+                       unsigned opt, int * fs_utf8, int * dfs_utf8)
+{
+    return do_rmsexpand(spec, buf, 1, def, opt, fs_utf8, dfs_utf8);
+}
 
 
 /*
@@ -6394,7 +6390,8 @@ int_fileify_dirspec(const char *dir, char *buf, int *utf8_fl)
 
 
 /*{{{ char *fileify_dirspec[_ts](char *dir, char *buf, int * utf8_fl)*/
-static char *mp_do_fileify_dirspec(pTHX_ const char *dir,char *buf,int ts, int *utf8_fl)
+static char *
+mp_do_fileify_dirspec(pTHX_ const char *dir,char *buf,int ts, int *utf8_fl)
 {
     static char __fileify_retbuf[VMS_MAXRSS];
     char * fileified, *ret_spec, *ret_buf;
@@ -6425,19 +6422,36 @@ static char *mp_do_fileify_dirspec(pTHX_ const char *dir,char *buf,int ts, int *
 /*}}}*/
 
 /* External entry points */
-char *Perl_fileify_dirspec(pTHX_ const char *dir, char *buf)
-{ return do_fileify_dirspec(dir,buf,0,NULL); }
-char *Perl_fileify_dirspec_ts(pTHX_ const char *dir, char *buf)
-{ return do_fileify_dirspec(dir,buf,1,NULL); }
-char *Perl_fileify_dirspec_utf8(pTHX_ const char *dir, char *buf, int * utf8_fl)
-{ return do_fileify_dirspec(dir,buf,0,utf8_fl); }
-char *Perl_fileify_dirspec_utf8_ts(pTHX_ const char *dir, char *buf, int * utf8_fl)
-{ return do_fileify_dirspec(dir,buf,1,utf8_fl); }
-
-static char * int_pathify_dirspec_simple(const char * dir, char * buf,
+char *
+Perl_fileify_dirspec(pTHX_ const char *dir, char *buf)
+{
+    return do_fileify_dirspec(dir, buf, 0, NULL);
+}
+
+char *
+Perl_fileify_dirspec_ts(pTHX_ const char *dir, char *buf)
+{
+    return do_fileify_dirspec(dir, buf, 1, NULL);
+}
+
+char *
+Perl_fileify_dirspec_utf8(pTHX_ const char *dir, char *buf, int * utf8_fl)
+{
+    return do_fileify_dirspec(dir, buf, 0, utf8_fl);
+}
+
+char *
+Perl_fileify_dirspec_utf8_ts(pTHX_ const char *dir, char *buf, int * utf8_fl)
+{
+    return do_fileify_dirspec(dir, buf, 1, utf8_fl);
+}
+
+static char * 
+int_pathify_dirspec_simple(const char * dir, char * buf,
     char * v_spec, int v_len, char * r_spec, int r_len,
     char * d_spec, int d_len, char * n_spec, int n_len,
-    char * e_spec, int e_len, char * vs_spec, int vs_len) {
+    char * e_spec, int e_len, char * vs_spec, int vs_len)
+{
 
     /* VMS specification - Try to do this the simple way */
     if ((v_len + r_len > 0) || (d_len > 0)) {
@@ -6527,7 +6541,8 @@ static char * int_pathify_dirspec_simple(const char * dir, char * buf,
 
 /* Internal routine to make sure or convert a directory to be in a */
 /* path specification.  No utf8 flag because it is not changed or used */
-static char *int_pathify_dirspec(const char *dir, char *buf)
+static char *
+int_pathify_dirspec(const char *dir, char *buf)
 {
     char * v_spec, * r_spec, * d_spec, * n_spec, * e_spec, * vs_spec;
     int sts, v_len, r_len, d_len, n_len, e_len, vs_len;
@@ -6819,7 +6834,8 @@ static char *int_pathify_dirspec(const char *dir, char *buf)
 }
 
 /*{{{ char *pathify_dirspec[_ts](char *path, char *buf)*/
-static char *mp_do_pathify_dirspec(pTHX_ const char *dir,char *buf, int ts, int * utf8_fl)
+static char *
+mp_do_pathify_dirspec(pTHX_ const char *dir,char *buf, int ts, int * utf8_fl)
 {
     static char __pathify_retbuf[VMS_MAXRSS];
     char * pathified, *ret_spec, *ret_buf;
@@ -6851,18 +6867,34 @@ static char *mp_do_pathify_dirspec(pTHX_ const char *dir,char *buf, int ts, int
 
 
 /* External entry points */
-char *Perl_pathify_dirspec(pTHX_ const char *dir, char *buf)
-{ return do_pathify_dirspec(dir,buf,0,NULL); }
-char *Perl_pathify_dirspec_ts(pTHX_ const char *dir, char *buf)
-{ return do_pathify_dirspec(dir,buf,1,NULL); }
-char *Perl_pathify_dirspec_utf8(pTHX_ const char *dir, char *buf, int *utf8_fl)
-{ return do_pathify_dirspec(dir,buf,0,utf8_fl); }
-char *Perl_pathify_dirspec_utf8_ts(pTHX_ const char *dir, char *buf, int *utf8_fl)
-{ return do_pathify_dirspec(dir,buf,1,utf8_fl); }
+char *
+Perl_pathify_dirspec(pTHX_ const char *dir, char *buf)
+{
+    return do_pathify_dirspec(dir, buf, 0, NULL);
+}
+
+char *
+Perl_pathify_dirspec_ts(pTHX_ const char *dir, char *buf)
+{
+    return do_pathify_dirspec(dir, buf, 1, NULL);
+}
+
+char *
+Perl_pathify_dirspec_utf8(pTHX_ const char *dir, char *buf, int *utf8_fl)
+{
+    return do_pathify_dirspec(dir, buf, 0, utf8_fl);
+}
+
+char *
+Perl_pathify_dirspec_utf8_ts(pTHX_ const char *dir, char *buf, int *utf8_fl)
+{
+    return do_pathify_dirspec(dir, buf, 1, utf8_fl);
+}
 
 /* Internal tounixspec routine that does not use a thread context */
 /*{{{ char *int_tounixspec[_ts](char *spec, char *buf, int *)*/
-static char *int_tounixspec(const char *spec, char *rslt, int * utf8_fl)
+static char *
+int_tounixspec(const char *spec, char *rslt, int * utf8_fl)
 {
   char *dirend, *cp1, *cp3, *tmp;
   const char *cp2;
@@ -7206,8 +7238,8 @@ static char *int_tounixspec(const char *spec, char *rslt, int * utf8_fl)
    * VMS device root or concealed root.
    */
   {
-  int ulen;
-  char * zeros;
+      int ulen;
+      char * zeros;
 
       ulen = strlen(rslt);
 
@@ -7233,7 +7265,8 @@ static char *int_tounixspec(const char *spec, char *rslt, int * utf8_fl)
 
 
 /*{{{ char *tounixspec[_ts](char *spec, char *buf, int *)*/
-static char *mp_do_tounixspec(pTHX_ const char *spec, char *buf, int ts, int * utf8_fl)
+static char *
+mp_do_tounixspec(pTHX_ const char *spec, char *buf, int ts, int * utf8_fl)
 {
     static char __tounixspec_retbuf[VMS_MAXRSS];
     char * unixspec, *ret_spec, *ret_buf;
@@ -7264,14 +7297,29 @@ static char *mp_do_tounixspec(pTHX_ const char *spec, char *buf, int ts, int * u
 }  /* end of do_tounixspec() */
 /*}}}*/
 /* External entry points */
-char *Perl_tounixspec(pTHX_ const char *spec, char *buf)
-  { return do_tounixspec(spec,buf,0, NULL); }
-char *Perl_tounixspec_ts(pTHX_ const char *spec, char *buf)
-  { return do_tounixspec(spec,buf,1, NULL); }
-char *Perl_tounixspec_utf8(pTHX_ const char *spec, char *buf, int * utf8_fl)
-  { return do_tounixspec(spec,buf,0, utf8_fl); }
-char *Perl_tounixspec_utf8_ts(pTHX_ const char *spec, char *buf, int * utf8_fl)
-  { return do_tounixspec(spec,buf,1, utf8_fl); }
+char *
+Perl_tounixspec(pTHX_ const char *spec, char *buf)
+{
+    return do_tounixspec(spec, buf, 0, NULL);
+}
+
+char *
+Perl_tounixspec_ts(pTHX_ const char *spec, char *buf)
+{
+    return do_tounixspec(spec,buf,1, NULL);
+}
+
+char *
+Perl_tounixspec_utf8(pTHX_ const char *spec, char *buf, int * utf8_fl)
+{
+    return do_tounixspec(spec,buf,0, utf8_fl);
+}
+
+char *
+Perl_tounixspec_utf8_ts(pTHX_ const char *spec, char *buf, int * utf8_fl)
+{
+    return do_tounixspec(spec,buf,1, utf8_fl);
+}
 
 #if __CRTL_VER >= 70200000 && !defined(__VAX)
 
@@ -7290,26 +7338,25 @@ char *Perl_tounixspec_utf8_ts(pTHX_ const char *spec, char *buf, int * utf8_fl)
  It is used only internally by posix_to_vmsspec_hardway().
  */
 
-static int posix_root_to_vms
-  (char *vmspath, int vmspath_len,
-   const char *unixpath,
-   const int * utf8_fl)
-{
-int sts;
-struct FAB myfab = cc$rms_fab;
-rms_setup_nam(mynam);
-struct dsc$descriptor_s dvidsc = {0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0};
-struct dsc$descriptor_s specdsc = {0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0};
-char * esa, * esal, * rsa, * rsal;
-int dir_flag;
-int unixlen;
-
-    dir_flag = 0;
-    vmspath[0] = '\0';
-    unixlen = strlen(unixpath);
-    if (unixlen == 0) {
-      return RMS$_FNF;
-    }
+static int
+posix_root_to_vms(char *vmspath, int vmspath_len,
+                  const char *unixpath, const int * utf8_fl)
+{
+  int sts;
+  struct FAB myfab = cc$rms_fab;
+  rms_setup_nam(mynam);
+  struct dsc$descriptor_s dvidsc = {0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0};
+  struct dsc$descriptor_s specdsc = {0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0};
+  char * esa, * esal, * rsa, * rsal;
+  int dir_flag;
+  int unixlen;
+
+  dir_flag = 0;
+  vmspath[0] = '\0';
+  unixlen = strlen(unixpath);
+  if (unixlen == 0) {
+    return RMS$_FNF;
+  }
 
 #if __CRTL_VER >= 80200000
   /* If not a posix spec already, convert it */
@@ -7326,8 +7373,8 @@ int unixlen;
   else
 #endif
   {     
-  int path_len;
-  int i,j;
+     int path_len;
+     int i,j;
 
      /* Check to see if this is under the POSIX root */
      if (decc_disable_posix_root) {
@@ -7499,14 +7546,11 @@ int unixlen;
 */
 
 static int 
-slash_dev_special_to_vms
-   (const char * unixptr,
-    char * vmspath,
-    int vmspath_len)
+slash_dev_special_to_vms(const char *unixptr, char *vmspath, int vmspath_len)
 {
-char * nextslash;
-int len;
-int cmp;
+    char * nextslash;
+    int len;
+    int cmp;
 
     unixptr += 4;
     nextslash = strchr(unixptr, '/');
@@ -7534,25 +7578,24 @@ int cmp;
     through with out interpretation instead of being escaped.
 
   */
-static int posix_to_vmsspec_hardway
-  (char *vmspath, int vmspath_len,
-   const char *unixpath,
-   int dir_flag,
-   int * utf8_fl) {
-
-char *esa;
-const char *unixptr;
-const char *unixend;
-char *vmsptr;
-const char *lastslash;
-const char *lastdot;
-int unixlen;
-int vmslen;
-int dir_start;
-int dir_dot;
-int quoted;
-char * v_spec, * r_spec, * d_spec, * n_spec, * e_spec, * vs_spec;
-int sts, v_len, r_len, d_len, n_len, e_len, vs_len;
+static int
+posix_to_vmsspec_hardway(char *vmspath, int vmspath_len, const char *unixpath,
+                         int dir_flag, int * utf8_fl)
+{
+
+  char *esa;
+  const char *unixptr;
+  const char *unixend;
+  char *vmsptr;
+  const char *lastslash;
+  const char *lastdot;
+  int unixlen;
+  int vmslen;
+  int dir_start;
+  int dir_dot;
+  int quoted;
+  char * v_spec, * r_spec, * d_spec, * n_spec, * e_spec, * vs_spec;
+  int sts, v_len, r_len, d_len, n_len, e_len, vs_len;
 
   if (utf8_fl != NULL)
     *utf8_fl = 0;
@@ -8007,9 +8050,9 @@ int sts, v_len, r_len, d_len, n_len, e_len, vs_len;
   } /* End of relative/absolute path handling */
 
   while ((unixptr <= unixend) && (vmslen < vmspath_len)){
-  int dash_flag;
-  int in_cnt;
-  int out_cnt;
+    int dash_flag;
+    int in_cnt;
+    int out_cnt;
 
     dash_flag = 0;
 
@@ -8240,31 +8283,6 @@ int sts, v_len, r_len, d_len, n_len, e_len, vs_len;
 }
 #endif
 
- /* Eventual routine to convert a UTF-8 specification to VTF-7. */
-static char * utf8_to_vtf7(char * rslt, const char * path, int *utf8_fl)
-{
-char * result;
-int utf8_flag;
-
-   /* If a UTF8 flag is being passed, honor it */
-   utf8_flag = 0;
-   if (utf8_fl != NULL) {
-     utf8_flag = *utf8_fl;
-    *utf8_fl = 0;
-   }
-
-   if (utf8_flag) {
-     /* If there is a possibility of UTF8, then if any UTF8 characters
-        are present, then they must be converted to VTF-7
-      */
-     result = strcpy(rslt, path); /* FIX-ME */
-   }
-   else
-     result = strcpy(rslt, path);
-
-   return result;
-}
-
 /* A convenience macro for copying dots in filenames and escaping
  * them when they haven't already been escaped, with guards to
  * avoid checking before the start of the buffer or advancing
@@ -8282,8 +8300,9 @@ int utf8_flag;
 } STMT_END
 
 /*{{{ char *tovmsspec[_ts](char *path, char *buf, int * utf8_flag)*/
-static char *int_tovmsspec
-   (const char *path, char *rslt, int dir_flag, int * utf8_flag) {
+static char *
+int_tovmsspec(const char *path, char *rslt, int dir_flag, int * utf8_flag)
+{
   char *dirend;
   char *lastdot;
   char *cp1;
@@ -8744,9 +8763,10 @@ static char *int_tovmsspec
 
 
 /*{{{ char *tovmsspec[_ts](char *path, char *buf, int * utf8_flag)*/
-static char *mp_do_tovmsspec
-   (pTHX_ const char *path, char *buf, int ts, int dir_flag, int * utf8_flag) {
-  static char __tovmsspec_retbuf[VMS_MAXRSS];
+static char *
+mp_do_tovmsspec(pTHX_ const char *path, char *buf, int ts, int dir_flag, int * utf8_flag)
+{
+    static char __tovmsspec_retbuf[VMS_MAXRSS];
     char * vmsspec, *ret_spec, *ret_buf;
 
     vmsspec = NULL;
@@ -8775,19 +8795,35 @@ static char *mp_do_tovmsspec
 }  /* end of mp_do_tovmsspec() */
 /*}}}*/
 /* External entry points */
-char *Perl_tovmsspec(pTHX_ const char *path, char *buf)
-  { return do_tovmsspec(path,buf,0,NULL); }
-char *Perl_tovmsspec_ts(pTHX_ const char *path, char *buf)
-  { return do_tovmsspec(path,buf,1,NULL); }
-char *Perl_tovmsspec_utf8(pTHX_ const char *path, char *buf, int * utf8_fl)
-  { return do_tovmsspec(path,buf,0,utf8_fl); }
-char *Perl_tovmsspec_utf8_ts(pTHX_ const char *path, char *buf, int * utf8_fl)
-  { return do_tovmsspec(path,buf,1,utf8_fl); }
+char *
+Perl_tovmsspec(pTHX_ const char *path, char *buf)
+{
+    return do_tovmsspec(path, buf, 0, NULL);
+}
+
+char *
+Perl_tovmsspec_ts(pTHX_ const char *path, char *buf)
+{
+    return do_tovmsspec(path, buf, 1, NULL);
+}
+
+char *
+Perl_tovmsspec_utf8(pTHX_ const char *path, char *buf, int * utf8_fl)
+{
+    return do_tovmsspec(path, buf, 0, utf8_fl);
+}
+
+char *
+Perl_tovmsspec_utf8_ts(pTHX_ const char *path, char *buf, int * utf8_fl)
+{
+    return do_tovmsspec(path, buf, 1, utf8_fl);
+}
 
 /*{{{ char *int_tovmspath(char *path, char *buf, const int *)*/
 /* Internal routine for use with out an explicit context present */
-static char * int_tovmspath(const char *path, char *buf, int * utf8_fl) {
-
+static char *
+int_tovmspath(const char *path, char *buf, int * utf8_fl)
+{
     char * ret_spec, *pathified;
 
     if (path == NULL)
@@ -8812,7 +8848,9 @@ static char * int_tovmspath(const char *path, char *buf, int * utf8_fl) {
 }
 
 /*{{{ char *tovmspath[_ts](char *path, char *buf, const int *)*/
-static char *mp_do_tovmspath(pTHX_ const char *path, char *buf, int ts, int * utf8_fl) {
+static char *
+mp_do_tovmspath(pTHX_ const char *path, char *buf, int ts, int * utf8_fl)
+{
   static char __tovmspath_retbuf[VMS_MAXRSS];
   int vmslen;
   char *pathified, *vmsified, *cp;
@@ -8854,18 +8892,35 @@ static char *mp_do_tovmspath(pTHX_ const char *path, char *buf, int ts, int * ut
 }  /* end of do_tovmspath() */
 /*}}}*/
 /* External entry points */
-char *Perl_tovmspath(pTHX_ const char *path, char *buf)
-  { return do_tovmspath(path,buf,0, NULL); }
-char *Perl_tovmspath_ts(pTHX_ const char *path, char *buf)
-  { return do_tovmspath(path,buf,1, NULL); }
-char *Perl_tovmspath_utf8(pTHX_ const char *path, char *buf, int *utf8_fl) 
-  { return do_tovmspath(path,buf,0,utf8_fl); }
-char *Perl_tovmspath_utf8_ts(pTHX_ const char *path, char *buf, int *utf8_fl)
-  { return do_tovmspath(path,buf,1,utf8_fl); }
+char *
+Perl_tovmspath(pTHX_ const char *path, char *buf)
+{
+    return do_tovmspath(path, buf, 0, NULL);
+}
+
+char *
+Perl_tovmspath_ts(pTHX_ const char *path, char *buf)
+{
+    return do_tovmspath(path, buf, 1, NULL);
+}
+
+char *
+Perl_tovmspath_utf8(pTHX_ const char *path, char *buf, int *utf8_fl)
+{
+    return do_tovmspath(path, buf, 0, utf8_fl);
+}
+
+char *
+Perl_tovmspath_utf8_ts(pTHX_ const char *path, char *buf, int *utf8_fl)
+{
+    return do_tovmspath(path, buf, 1, utf8_fl);
+}
 
 
 /*{{{ char *tounixpath[_ts](char *path, char *buf, int * utf8_fl)*/
-static char *mp_do_tounixpath(pTHX_ const char *path, char *buf, int ts, int * utf8_fl) {
+static char *
+mp_do_tounixpath(pTHX_ const char *path, char *buf, int ts, int * utf8_fl)
+{
   static char __tounixpath_retbuf[VMS_MAXRSS];
   int unixlen;
   char *pathified, *unixified, *cp;
@@ -8908,14 +8963,29 @@ static char *mp_do_tounixpath(pTHX_ const char *path, char *buf, int ts, int * u
 }  /* end of do_tounixpath() */
 /*}}}*/
 /* External entry points */
-char *Perl_tounixpath(pTHX_ const char *path, char *buf)
-  { return do_tounixpath(path,buf,0,NULL); }
-char *Perl_tounixpath_ts(pTHX_ const char *path, char *buf)
-  { return do_tounixpath(path,buf,1,NULL); }
-char *Perl_tounixpath_utf8(pTHX_ const char *path, char *buf, int * utf8_fl)
-  { return do_tounixpath(path,buf,0,utf8_fl); }
-char *Perl_tounixpath_utf8_ts(pTHX_ const char *path, char *buf, int * utf8_fl)
-  { return do_tounixpath(path,buf,1,utf8_fl); }
+char *
+Perl_tounixpath(pTHX_ const char *path, char *buf)
+{
+    return do_tounixpath(path, buf, 0, NULL);
+}
+
+char *
+Perl_tounixpath_ts(pTHX_ const char *path, char *buf)
+{
+    return do_tounixpath(path, buf, 1, NULL);
+}
+
+char *
+Perl_tounixpath_utf8(pTHX_ const char *path, char *buf, int * utf8_fl)
+{
+    return do_tounixpath(path, buf, 0, utf8_fl);
+}
+
+char *
+Perl_tounixpath_utf8_ts(pTHX_ const char *path, char *buf, int * utf8_fl)
+{
+    return do_tounixpath(path, buf, 1, utf8_fl);
+}
 
 /*
  * @(#)argproc.c 2.2 94/08/16  Mark Pizzolato (mark AT infocomm DOT com)
@@ -9208,10 +9278,8 @@ mp_getredirection(pTHX_ int *ac, char ***av)
 }  /* end of getredirection() */
 /*}}}*/
 
-static void add_item(struct list_item **head,
-                    struct list_item **tail,
-                    char *value,
-                    int *count)
+static void
+add_item(struct list_item **head, struct list_item **tail, char *value, int *count)
 {
     if (*head == 0)
        {
@@ -9228,26 +9296,25 @@ static void add_item(struct list_item **head,
     ++(*count);
 }
 
-static void mp_expand_wild_cards(pTHX_ char *item,
-                             struct list_item **head,
-                             struct list_item **tail,
-                             int *count)
-{
-int expcount = 0;
-unsigned long int context = 0;
-int isunix = 0;
-int item_len = 0;
-char *had_version;
-char *had_device;
-int had_directory;
-char *devdir,*cp;
-char *vmsspec;
-$DESCRIPTOR(filespec, "");
-$DESCRIPTOR(defaultspec, "SYS$DISK:[]");
-$DESCRIPTOR(resultspec, "");
-unsigned long int lff_flags = 0;
-int sts;
-int rms_sts;
+static void 
+mp_expand_wild_cards(pTHX_ char *item, struct list_item **head,
+                     struct list_item **tail, int *count)
+{
+    int expcount = 0;
+    unsigned long int context = 0;
+    int isunix = 0;
+    int item_len = 0;
+    char *had_version;
+    char *had_device;
+    int had_directory;
+    char *devdir,*cp;
+    char *vmsspec;
+    $DESCRIPTOR(filespec, "");
+    $DESCRIPTOR(defaultspec, "SYS$DISK:[]");
+    $DESCRIPTOR(resultspec, "");
+    unsigned long int lff_flags = 0;
+    int sts;
+    int rms_sts;
 
 #ifdef VMS_LONGNAME_SUPPORT
     lff_flags = LIB$M_FIL_LONG_NAMES;
@@ -9405,18 +9472,19 @@ pipe_and_fork(pTHX_ char **cmargv)
     }
 }
 
-static int background_process(pTHX_ int argc, char **argv)
-{
-char command[MAX_DCL_SYMBOL + 1] = "$";
-$DESCRIPTOR(value, "");
-static $DESCRIPTOR(cmd, "BACKGROUND$COMMAND");
-static $DESCRIPTOR(null, "NLA0:");
-static $DESCRIPTOR(pidsymbol, "SHELL_BACKGROUND_PID");
-char pidstring[80];
-$DESCRIPTOR(pidstr, "");
-int pid;
-unsigned long int flags = 17, one = 1, retsts;
-int len;
+static int
+background_process(pTHX_ int argc, char **argv)
+{
+    char command[MAX_DCL_SYMBOL + 1] = "$";
+    $DESCRIPTOR(value, "");
+    static $DESCRIPTOR(cmd, "BACKGROUND$COMMAND");
+    static $DESCRIPTOR(null, "NLA0:");
+    static $DESCRIPTOR(pidsymbol, "SHELL_BACKGROUND_PID");
+    char pidstring[80];
+    $DESCRIPTOR(pidstr, "");
+    int pid;
+    unsigned long int flags = 17, one = 1, retsts;
+    int len;
 
     len = my_strlcat(command, argv[0], sizeof(command));
     while (--argc && (len < MAX_DCL_SYMBOL))
@@ -9566,8 +9634,8 @@ vms_image_init(int *argcp, char ***argvp)
    * directory.  This needs to be removed.
    */
   if (decc_filename_unix_report) {
-  char * zeros;
-  int ulen;
+    char * zeros;
+    int ulen;
     ulen = strlen(argvp[0][0]);
     if (ulen > 7) {
       zeros = strstr(argvp[0][0], "/000000/");
@@ -10784,8 +10852,8 @@ setup_cmddsc(pTHX_ const char *incmd, int check_img, int *suggest_quote,
 bool
 Perl_vms_do_aexec(pTHX_ SV *really,SV **mark,SV **sp)
 {
-bool exec_sts;
-char * cmd;
+  bool exec_sts;
+  char * cmd;
 
   if (sp > mark) {
     if (vfork_called) {           /* this follows a vfork - act Unixish */
@@ -10866,9 +10934,9 @@ int do_spawn2(pTHX_ const char *, int);
 int
 Perl_do_aspawn(pTHX_ SV* really, SV** mark, SV** sp)
 {
-unsigned long int sts;
-char * cmd;
-int flags = 0;
+  unsigned long int sts;
+  char * cmd;
+  int flags = 0;
 
   if (sp > mark) {
 
@@ -10968,7 +11036,11 @@ do_spawn2(pTHX_ const char *cmd, int flags)
     fp = safe_popen(aTHX_ cmd, mode, (int *)&sts);
     if (fp != NULL)
       my_pclose(fp);
-    /* sts will be the pid in the nowait case */
+    /* sts will be the pid in the nowait case, so leave a
+     * hint saying not to do any bit shifting to it.
+     */
+    if (flags & CLI$M_NOWAIT)
+        PL_statusvalue = -1;
   }
   return sts;
 }  /* end of do_spawn2() */
@@ -10984,7 +11056,8 @@ static unsigned int *sockflags, sockflagsize;
  * likely to be opened by a name.
  */
 /*{{{ FILE *my_fdopen(int fd, const char *mode)*/
-FILE *my_fdopen(int fd, const char *mode)
+FILE *
+my_fdopen(int fd, const char *mode)
 {
   FILE *fp = fdopen(fd, mode);
 
@@ -11012,7 +11085,8 @@ FILE *my_fdopen(int fd, const char *mode)
  * via freopen().  >> Todo
  */
 /*{{{ int my_fclose(FILE *fp)*/
-int my_fclose(FILE *fp) {
+int
+my_fclose(FILE *fp) {
   if (fp) {
     unsigned int fd = fileno(fp);
     unsigned int fdoff = fd / sizeof(unsigned int);
@@ -11183,7 +11257,8 @@ static char __pw_namecache[UAI$S_IDENT+1];
 /*
  * This routine does most of the work extracting the user information.
  */
-static int fillpasswd (pTHX_ const char *name, struct passwd *pwd)
+static int
+fillpasswd (pTHX_ const char *name, struct passwd *pwd)
 {
     static struct {
         unsigned char length;
@@ -11265,7 +11340,8 @@ static int fillpasswd (pTHX_ const char *name, struct passwd *pwd)
  * Get information for a named user.
 */
 /*{{{struct passwd *getpwnam(char *name)*/
-struct passwd *Perl_my_getpwnam(pTHX_ const char *name)
+struct passwd *
+Perl_my_getpwnam(pTHX_ const char *name)
 {
     struct dsc$descriptor_s name_desc;
     union uicdef uic;
@@ -11302,7 +11378,8 @@ struct passwd *Perl_my_getpwnam(pTHX_ const char *name)
  * Called by my_getpwent with uid=-1 to list all users.
 */
 /*{{{struct passwd *my_getpwuid(Uid_t uid)*/
-struct passwd *Perl_my_getpwuid(pTHX_ Uid_t uid)
+struct passwd *
+Perl_my_getpwuid(pTHX_ Uid_t uid)
 {
     const $DESCRIPTOR(name_desc,__pw_namecache);
     unsigned short lname;
@@ -11357,7 +11434,8 @@ struct passwd *Perl_my_getpwuid(pTHX_ Uid_t uid)
  * Get information for next user.
 */
 /*{{{struct passwd *my_getpwent()*/
-struct passwd *Perl_my_getpwent(pTHX)
+struct passwd *
+Perl_my_getpwent(pTHX)
 {
     return (my_getpwuid((unsigned int) -1));
 }
@@ -11367,7 +11445,8 @@ struct passwd *Perl_my_getpwent(pTHX)
  * Finish searching rights database for users.
 */
 /*{{{void my_endpwent()*/
-void Perl_my_endpwent(pTHX)
+void
+Perl_my_endpwent(pTHX)
 {
     if (contxt) {
       _ckvmssts(sys$finish_rdb(&contxt));
@@ -11433,7 +11512,8 @@ static time_t toloc_dst(time_t utc) {
  */
 
 /*{{{time_t my_time(time_t *timep)*/
-time_t Perl_my_time(pTHX_ time_t *timep)
+time_t
+Perl_my_time(pTHX_ time_t *timep)
 {
   time_t when;
   struct tm *tm_p;
@@ -11555,7 +11635,8 @@ Perl_my_localtime(pTHX_ const time_t *timep)
 static const long int utime_baseadjust[2] = { 0x4beb4000, 0x7c9567 };
 
 /*{{{int my_utime(const char *path, const struct utimbuf *utimes)*/
-int Perl_my_utime(pTHX_ const char *file, const struct utimbuf *utimes)
+int
+Perl_my_utime(pTHX_ const char *file, const struct utimbuf *utimes)
 {
 #if __CRTL_VER >= 70300000
   struct utimbuf utc_utimes, *utc_utimesp;
@@ -11771,7 +11852,8 @@ int Perl_my_utime(pTHX_ const char *file, const struct utimbuf *utimes)
  * on the first call.
  */
 #define LOCKID_MASK 0x80000000     /* Use 0 to force device name use only */
-static mydev_t encode_dev (pTHX_ const char *dev)
+static mydev_t
+encode_dev (pTHX_ const char *dev)
 {
   int i;
   unsigned long int f;
@@ -11861,8 +11943,7 @@ Perl_flex_stat_int(pTHX_ const char *fspec, Stat_t *statbufp, int lstat_flag);
 #define flex_stat_int(a,b,c)           Perl_flex_stat_int(aTHX_ a,b,c)
 
 static I32
-Perl_cando_by_name_int
-   (pTHX_ I32 bit, bool effective, const char *fname, int opts)
+Perl_cando_by_name_int(pTHX_ I32 bit, bool effective, const char *fname, int opts)
 {
   char usrname[L_cuserid];
   struct dsc$descriptor_s usrdsc =
@@ -13004,9 +13085,7 @@ hushexit_fromperl(pTHX_ CV *cv)
 
 
 PerlIO * 
-Perl_vms_start_glob
-   (pTHX_ SV *tmpglob,
-    IO *io)
+Perl_vms_start_glob(pTHX_ SV *tmpglob, IO *io)
 {
     PerlIO *fp;
     struct vs_str_st *rslt;
@@ -13491,12 +13570,12 @@ int vms_fid_to_name(char * outname, int outlen,
 #pragma message disable MISALGNDMEM
 #pragma member_alignment save
 #pragma nomember_alignment
-struct statbuf_t {
-    char          * st_dev;
-    unsigned short st_ino[3];
-    unsigned short old_st_mode;
-    unsigned long  padl[30];  /* plenty of room */
-} statbuf;
+    struct statbuf_t {
+        char      * st_dev;
+        unsigned short st_ino[3];
+        unsigned short old_st_mode;
+        unsigned long  padl[30];  /* plenty of room */
+    } statbuf;
 #pragma message restore
 #pragma member_alignment restore
 
@@ -13845,11 +13924,17 @@ mp_do_vms_realname(pTHX_ const char *filespec, char *outbuf,
 
 /*}}}*/
 /* External entry points */
-char *Perl_vms_realpath(pTHX_ const char *filespec, char *outbuf, int *utf8_fl)
-{ return do_vms_realpath(filespec, outbuf, utf8_fl); }
+char *
+Perl_vms_realpath(pTHX_ const char *filespec, char *outbuf, int *utf8_fl)
+{
+    return do_vms_realpath(filespec, outbuf, utf8_fl);
+}
 
-char *Perl_vms_realname(pTHX_ const char *filespec, char *outbuf, int *utf8_fl)
-{ return do_vms_realname(filespec, outbuf, utf8_fl); }
+char *
+Perl_vms_realname(pTHX_ const char *filespec, char *outbuf, int *utf8_fl)
+{
+    return do_vms_realname(filespec, outbuf, utf8_fl);
+}
 
 /* case_tolerant */
 
@@ -13857,20 +13942,22 @@ char *Perl_vms_realname(pTHX_ const char *filespec, char *outbuf, int *utf8_fl)
 /* OpenVMS provides a case sensitive implementation of ODS-5 and this is
  * controlled by a process setting.
  */
-int do_vms_case_tolerant(void)
+int
+do_vms_case_tolerant(void)
 {
     return vms_process_case_tolerant;
 }
 /*}}}*/
 /* External entry points */
+int
+Perl_vms_case_tolerant(void)
+{
 #if __CRTL_VER >= 70301000 && !defined(__VAX)
-int Perl_vms_case_tolerant(void)
-{ return do_vms_case_tolerant(); }
+    return do_vms_case_tolerant();
 #else
-int Perl_vms_case_tolerant(void)
-{ return vms_process_case_tolerant; }
+    return vms_process_case_tolerant;
 #endif
-
+}
 
  /* Start of DECC RTL Feature handling */
 
index 7c89094..fcfd03f 100644 (file)
@@ -28,7 +28,7 @@
 #  pragma message disable (ADDRCONSTEXT,NEEDCONSTEXT)
 #endif
 #ifdef __DECCXX
-#  pragma message informational (INTSIGNCHANGE,CASTQUALTYP,ASSCOMMEA,NOCTOBUTCONREFM)
+#  pragma message informational (INTSIGNCHANGE,CASTQUALTYP,ASSCOMMEA,NOCTOBUTCONREFM,MISSINGRETURN)
 #endif
 
 /* DEC's C compilers and gcc use incompatible definitions of _to(upp|low)er() */
@@ -791,4 +791,8 @@ char *      my_getlogin (void);
 #define PERL_RMSEXPAND_M_VMS_IN                0x08 /* Assume input is VMS already */
 #define PERL_RMSEXPAND_M_SYMLINK       0x20 /* Use symbolic link, not target */
 
+/* With long doubles, NaN == NaN, which it shouldn't. */
+#ifdef USE_LONG_DOUBLE
+#  define NAN_COMPARE_BROKEN 1
+#endif
 #endif  /* __vmsish_h_included */
index 6a80096..24fe243 100644 (file)
 
 /* Warnings Categories added in Perl 5.008 */
 
-#define WARN_ALL                0
-#define WARN_CLOSURE            1
-#define WARN_DEPRECATED                 2
-#define WARN_EXITING            3
-#define WARN_GLOB               4
-#define WARN_IO                         5
-#define WARN_CLOSED             6
-#define WARN_EXEC               7
-#define WARN_LAYER              8
-#define WARN_NEWLINE            9
-#define WARN_PIPE               10
-#define WARN_UNOPENED           11
-#define WARN_MISC               12
-#define WARN_NUMERIC            13
-#define WARN_ONCE               14
-#define WARN_OVERFLOW           15
-#define WARN_PACK               16
-#define WARN_PORTABLE           17
-#define WARN_RECURSION          18
-#define WARN_REDEFINE           19
-#define WARN_REGEXP             20
-#define WARN_SEVERE             21
-#define WARN_DEBUGGING          22
-#define WARN_INPLACE            23
-#define WARN_INTERNAL           24
-#define WARN_MALLOC             25
-#define WARN_SIGNAL             26
-#define WARN_SUBSTR             27
-#define WARN_SYNTAX             28
-#define WARN_AMBIGUOUS          29
-#define WARN_BAREWORD           30
-#define WARN_DIGIT              31
-#define WARN_PARENTHESIS        32
-#define WARN_PRECEDENCE                 33
-#define WARN_PRINTF             34
-#define WARN_PROTOTYPE          35
-#define WARN_QW                         36
-#define WARN_RESERVED           37
-#define WARN_SEMICOLON          38
-#define WARN_TAINT              39
-#define WARN_THREADS            40
-#define WARN_UNINITIALIZED      41
-#define WARN_UNPACK             42
-#define WARN_UNTIE              43
-#define WARN_UTF8               44
-#define WARN_VOID               45
+#define WARN_ALL                        0
+#define WARN_CLOSURE                    1
+#define WARN_DEPRECATED                         2
+#define WARN_EXITING                    3
+#define WARN_GLOB                       4
+#define WARN_IO                                 5
+#define WARN_CLOSED                     6
+#define WARN_EXEC                       7
+#define WARN_LAYER                      8
+#define WARN_NEWLINE                    9
+#define WARN_PIPE                       10
+#define WARN_UNOPENED                   11
+#define WARN_MISC                       12
+#define WARN_NUMERIC                    13
+#define WARN_ONCE                       14
+#define WARN_OVERFLOW                   15
+#define WARN_PACK                       16
+#define WARN_PORTABLE                   17
+#define WARN_RECURSION                  18
+#define WARN_REDEFINE                   19
+#define WARN_REGEXP                     20
+#define WARN_SEVERE                     21
+#define WARN_DEBUGGING                  22
+#define WARN_INPLACE                    23
+#define WARN_INTERNAL                   24
+#define WARN_MALLOC                     25
+#define WARN_SIGNAL                     26
+#define WARN_SUBSTR                     27
+#define WARN_SYNTAX                     28
+#define WARN_AMBIGUOUS                  29
+#define WARN_BAREWORD                   30
+#define WARN_DIGIT                      31
+#define WARN_PARENTHESIS                32
+#define WARN_PRECEDENCE                         33
+#define WARN_PRINTF                     34
+#define WARN_PROTOTYPE                  35
+#define WARN_QW                                 36
+#define WARN_RESERVED                   37
+#define WARN_SEMICOLON                  38
+#define WARN_TAINT                      39
+#define WARN_THREADS                    40
+#define WARN_UNINITIALIZED              41
+#define WARN_UNPACK                     42
+#define WARN_UNTIE                      43
+#define WARN_UTF8                       44
+#define WARN_VOID                       45
 
 /* Warnings Categories added in Perl 5.011 */
 
-#define WARN_IMPRECISION        46
-#define WARN_ILLEGALPROTO       47
+#define WARN_IMPRECISION                46
+#define WARN_ILLEGALPROTO               47
 
 /* Warnings Categories added in Perl 5.013 */
 
-#define WARN_NON_UNICODE        48
-#define WARN_NONCHAR            49
-#define WARN_SURROGATE          50
+#define WARN_NON_UNICODE                48
+#define WARN_NONCHAR                    49
+#define WARN_SURROGATE                  50
 
 /* Warnings Categories added in Perl 5.017 */
 
-#define WARN_EXPERIMENTAL       51
-#define WARN_EXPERIMENTAL__LEXICAL_SUBS 52
+#define WARN_EXPERIMENTAL               51
+#define WARN_EXPERIMENTAL__LEXICAL_SUBS         52
 #define WARN_EXPERIMENTAL__LEXICAL_TOPIC 53
-#define WARN_EXPERIMENTAL__REGEX_SETS 54
-#define WARN_EXPERIMENTAL__SMARTMATCH 55
+#define WARN_EXPERIMENTAL__REGEX_SETS   54
+#define WARN_EXPERIMENTAL__SMARTMATCH   55
 
 /* Warnings Categories added in Perl 5.019 */
 
-#define WARN_EXPERIMENTAL__AUTODEREF 56
-#define WARN_EXPERIMENTAL__POSTDEREF 57
-#define WARN_EXPERIMENTAL__SIGNATURES 58
-#define WARN_SYSCALLS           59
+#define WARN_EXPERIMENTAL__AUTODEREF    56
+#define WARN_EXPERIMENTAL__POSTDEREF    57
+#define WARN_EXPERIMENTAL__SIGNATURES   58
+#define WARN_SYSCALLS                   59
 
 /* Warnings Categories added in Perl 5.021 */
 
-#define WARN_EVERYTHING                 60
-#define WARN_EXPERIMENTAL__CONST_ATTR 61
-#define WARN_EXPERIMENTAL__RE_STRICT 62
-#define WARN_EXPERIMENTAL__REFALIASING 63
-#define WARN_EXPERIMENTAL__WIN32_PERLIO 64
-#define WARN_LOCALE             65
-#define WARN_MISSING            66
-#define WARN_REDUNDANT          67
-#define WARN_EXTRA              68
-#define WARN_VOID_UNUSUAL       69
-
-#define WARNsize               18
-#define WARN_ALLstring         "\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125"
-#define WARN_NONEstring                "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+#define WARN_EXPERIMENTAL__BITWISE      60
+#define WARN_EXPERIMENTAL__CONST_ATTR   61
+#define WARN_EXPERIMENTAL__RE_STRICT    62
+#define WARN_EXPERIMENTAL__REFALIASING  63
+#define WARN_EXPERIMENTAL__WIN32_PERLIO         64
+#define WARN_LOCALE                     65
+#define WARN_MISSING                    66
+#define WARN_REDUNDANT                  67
+
+#define WARNsize                        17
+#define WARN_ALLstring                  "\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125"
+#define WARN_NONEstring                         "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
 
 #define isLEXWARN_on   (PL_curcop->cop_warnings != pWARN_STD)
 #define isLEXWARN_off  (PL_curcop->cop_warnings == pWARN_STD)
index f8d8a69..52ca2ac 100644 (file)
@@ -38,7 +38,7 @@ INST_TOP      = $(INST_DRV)\perl
 # versioned installation can be obtained by setting INST_TOP above to a
 # path that includes an arbitrary version string.
 #
-#INST_VER      = \5.21.8
+#INST_VER      = \5.21.9
 
 #
 # Comment this out if you DON'T want your perl installation to have
@@ -133,10 +133,27 @@ CCTYPE            = MSVC60
 #__ICC         = define
 
 #
-# uncomment next line if you want debug version of perl (big,slow)
+# Uncomment this if you want to build everything in C++ mode
+#
+#USE_CPLUSPLUS = define
+
+#
+# uncomment next line if you want debug version of perl (big/slow)
 # If not enabled, we automatically try to use maximum optimization
 # with all compilers that are known to have a working optimizer.
 #
+# You can also set CFG = DebugSymbols for a slightly smaller/faster
+# debug build without the special debugging code in perl which is
+# enabled via -DDEBUGGING;
+#
+# or you can set CFG = DebugFull for an even fuller (bigger/slower)
+# debug build using the debug version of the CRT, and enabling VC++
+# debug features such as extra assertions and invalid parameter warnings
+# in perl and CRT code via -D_DEBUG.  (Note that the invalid parameter
+# handler does get triggered from time to time in this configuration,
+# which causes warnings to be printed on STDERR, which in turn causes a
+# few tests to fail.)
+#
 #CFG           = Debug
 
 #
@@ -427,12 +444,21 @@ LOCDEFS           = -DPERLDLL -DPERL_CORE
 SUBSYS         = console
 CXX_FLAG       = -TP -EHsc
 
-LIBC   = msvcrt.lib
+LIBC           = msvcrt.lib
 
 !IF  "$(CFG)" == "Debug"
 OPTIMIZE       = -Od -MD -Zi -DDEBUGGING
 LINK_DBG       = -debug
 !ELSE
+!IF  "$(CFG)" == "DebugSymbols"
+OPTIMIZE       = -Od -MD -Zi
+LINK_DBG       = -debug
+!ELSE
+!IF  "$(CFG)" == "DebugFull"
+LIBC           = msvcrtd.lib
+OPTIMIZE       = -Od -MDd -Zi -D_DEBUG -DDEBUGGING
+LINK_DBG       = -debug
+!ELSE
 # -O1 yields smaller code, which turns out to be faster than -O2 on x86 and x64
 OPTIMIZE       = -O1 -MD -Zi -DNDEBUG
 # we enable debug symbols in release builds also
@@ -450,6 +476,8 @@ LINK_DBG    = $(LINK_DBG) -ltcg
 LIB_FLAGS      = -ltcg
 !  ENDIF
 !ENDIF
+!ENDIF
+!ENDIF
 
 !IF "$(WIN64)" == "define"
 DEFINES                = $(DEFINES) -DWIN64 -DCONSERVATIVE
@@ -505,6 +533,9 @@ EXTRACFLAGS = -nologo -GF -W3
 !IF "$(__ICC)" == "define"
 EXTRACFLAGS    = $(EXTRACFLAGS) -Qstd=c99
 !ENDIF
+!IF "$(USE_CPLUSPLUS)" == "define"
+EXTRACFLAGS    = $(EXTRACFLAGS) $(CXX_FLAG)
+!ENDIF
 CFLAGS         = $(EXTRACFLAGS) $(INCLUDES) $(DEFINES) $(LOCDEFS) \
                $(PCHFLAGS) $(OPTIMIZE)
 LINK_FLAGS     = -nologo -nodefaultlib $(LINK_DBG) \
@@ -615,6 +646,7 @@ UTILS               =                       \
                ..\utils\perlivp        \
                ..\utils\libnetcfg      \
                ..\utils\enc2xs         \
+               ..\utils\encguess               \
                ..\utils\piconv         \
                ..\utils\corelist       \
                ..\utils\cpan           \
@@ -791,6 +823,7 @@ CFG_VARS    =                                       \
                "cc=$(CC)"                              \
                "ld=$(LINK32)"                          \
                "ccflags=$(EXTRACFLAGS) $(OPTIMIZE:"=\") $(DEFINES) $(BUILDOPT)"        \
+               "usecplusplus=$(USE_CPLUSPLUS)"         \
                "cf_email=$(EMAIL)"                     \
                "d_mymalloc=$(PERL_MALLOC)"             \
                "libs=$(LIBFILES)"                      \
@@ -879,6 +912,7 @@ config.w32 : $(CFGSH_TMPL)
        @echo #undef UVXf>>$@
        @echo #undef USE_64_BIT_INT>>$@
        @echo #undef Size_t_size>>$@
+       @echo #undef USE_CPLUSPLUS>>$@
 !IF "$(USE_LARGE_FILES)"=="define"
        @echo #define Off_t __int64>>$@
        @echo #define LSEEKSIZE ^8>>$@
@@ -930,6 +964,11 @@ config.w32 : $(CFGSH_TMPL)
        @echo #define UVXf "lX">>$@
        @echo #undef USE_64_BIT_INT>>$@
 !ENDIF
+!IF "$(USE_CPLUSPLUS)"=="define"
+       @echo #define USE_CPLUSPLUS>>$@
+!ELSE
+       @echo #undef USE_CPLUSPLUS>>$@
+!ENDIF
        @echo #endif>>$@
 
 ..\git_version.h : $(MINIPERL) ..\make_patchnum.pl
@@ -954,7 +993,6 @@ regen_config_h:
 
 $(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL
        $(MINIPERL) -I..\lib ..\configpm --chdir=..
-       if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL)
        $(XCOPY) ..\*.h $(COREDIR)\*.*
        $(XCOPY) *.h $(COREDIR)\*.*
        $(RCOPY) include $(COREDIR)\*.*
@@ -1138,7 +1176,7 @@ utils: $(PERLEXE) ..\utils\Makefile
        copy ..\README.tw       ..\pod\perltw.pod
        copy ..\README.vos      ..\pod\perlvos.pod
        copy ..\README.win32    ..\pod\perlwin32.pod
-       copy ..\pod\perldelta.pod ..\pod\perl5218delta.pod
+       copy ..\pod\perldelta.pod ..\pod\perl5219delta.pod
        cd ..\win32
        $(PERLEXE) $(PL2BAT) $(UTILS)
        $(MINIPERL) -I..\lib ..\autodoc.pl ..
@@ -1234,7 +1272,7 @@ distclean: realclean
        -if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API
        -if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
        -cd $(PODDIR) && del /f *.html *.bat roffitall \
-           perl5218delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
+           perl5219delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
            perlapi.pod perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod \
            perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \
            perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \
@@ -1245,7 +1283,7 @@ distclean: realclean
            perltru64.pod perltw.pod perluniprops.pod perlvos.pod \
            perlwin32.pod
        -cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \
-           perldoc perlivp libnetcfg enc2xs piconv cpan *.bat \
+           perldoc perlivp libnetcfg enc2xs encguess piconv cpan *.bat \
            xsubpp pod2html instmodsh json_pp prove ptar ptardiff ptargrep shasum corelist zipdetails
        -del /f ..\config.sh perlmain.c dlutils.c config.h.new \
                perlmainst.c
@@ -1283,7 +1321,7 @@ inst_lib : $(CONFIGPM)
 
 $(UNIDATAFILES) ..\pod\perluniprops.pod : $(MINIPERL) $(CONFIGPM) ..\lib\unicore\mktables Extensions_nonxs
        cd ..\lib\unicore && \
-       ..\$(MINIPERL) -I.. -I..\..\dist\Cwd\lib -I..\..\dist\Cwd mktables -P ..\..\pod -maketest -makelist -p -check $@ $(FIRSTUNIFILE)
+       ..\$(MINIPERL) -I.. mktables -P ..\..\pod -maketest -makelist -p -check $@ $(FIRSTUNIFILE)
 
 minitest : .\config.h $(MINIPERL) ..\git_version.h $(GLOBEXE) $(CONFIGPM) $(UNIDATAFILES)
        $(XCOPY) $(MINIPERL) ..\t\$(NULL)
index 34e4a71..c0c7452 100644 (file)
@@ -319,7 +319,9 @@ d_lgamma_r='undef'
 d_libm_lib_version='undef'
 d_link='define'
 d_llrint='undef'
+d_llrintl='undef'
 d_llround='undef'
+d_llroundl='undef'
 d_localtime64='undef'
 d_localtime_r='undef'
 d_localtime_r_needs_tzset='undef'
@@ -331,7 +333,9 @@ d_logb='undef'
 d_longdbl='undef'
 d_longlong='undef'
 d_lrint='undef'
+d_lrintl='undef'
 d_lround='undef'
+d_lroundl='undef'
 d_lseekproto='define'
 d_lstat='undef'
 d_madvise='undef'
index 55931f1..758e02d 100644 (file)
@@ -319,7 +319,9 @@ d_lgamma_r='undef'
 d_libm_lib_version='undef'
 d_link='define'
 d_llrint='undef'
+d_llrintl='undef'
 d_llround='undef'
+d_llroundl='undef'
 d_localtime64='undef'
 d_localtime_r='undef'
 d_localtime_r_needs_tzset='undef'
@@ -331,7 +333,9 @@ d_logb='undef'
 d_longdbl='define'
 d_longlong='define'
 d_lrint='undef'
+d_lrintl='undef'
 d_lround='undef'
+d_lroundl='undef'
 d_lseekproto='define'
 d_lstat='undef'
 d_madvise='undef'
index 13d5dd9..ecfe970 100644 (file)
@@ -319,7 +319,9 @@ d_lgamma_r='undef'
 d_libm_lib_version='undef'
 d_link='define'
 d_llrint='undef'
+d_llrintl='undef'
 d_llround='undef'
+d_llroundl='undef'
 d_localtime64='undef'
 d_localtime_r='undef'
 d_localtime_r_needs_tzset='undef'
@@ -331,7 +333,9 @@ d_logb='undef'
 d_longdbl='define'
 d_longlong='undef'
 d_lrint='undef'
+d_lrintl='undef'
 d_lround='undef'
+d_lroundl='undef'
 d_lseekproto='define'
 d_lstat='undef'
 d_madvise='undef'
index 60fb4ed..98255a8 100644 (file)
@@ -286,6 +286,11 @@ if ($opt{useithreads} eq 'define' && $opt{ccflags} =~ /-DPERL_IMPLICIT_SYS\b/) {
     $opt{d_pseudofork} = 'define';
 }
 
+if ($opt{usecplusplus} eq 'define') {
+    $opt{d_cplusplus} = 'define';
+    $opt{extern_C} = 'extern "C"';
+}
+
 #if the fields above are defined, they override the defaults in the premade
 #config file
 while (<>) {
index 9cfea1c..62becb0 100644 (file)
@@ -44,7 +44,7 @@ INST_TOP      *= $(INST_DRV)\perl
 # versioned installation can be obtained by setting INST_TOP above to a
 # path that includes an arbitrary version string.
 #
-#INST_VER      *= \5.21.8
+#INST_VER      *= \5.21.9
 
 #
 # Comment this out if you DON'T want your perl installation to have
@@ -153,10 +153,27 @@ CCTYPE            *= GCC
 #__ICC         *= define
 
 #
-# uncomment next line if you want debug version of perl (big,slow)
+# Uncomment this if you want to build everything in C++ mode
+#
+#USE_CPLUSPLUS *= define
+
+#
+# uncomment next line if you want debug version of perl (big/slow)
 # If not enabled, we automatically try to use maximum optimization
 # with all compilers that are known to have a working optimizer.
 #
+# You can also set CFG = DebugSymbols for a slightly smaller/faster
+# debug build without the special debugging code in perl which is
+# enabled via -DDEBUGGING;
+#
+# or you can set CFG = DebugFull for an even fuller (bigger/slower)
+# debug build using the debug version of the CRT, and enabling VC++
+# debug features such as extra assertions and invalid parameter warnings
+# in perl and CRT code via -D_DEBUG.  (Note that the invalid parameter
+# handler does get triggered from time to time in this configuration,
+# which causes warnings to be printed on STDERR, which in turn causes a
+# few tests to fail.)  (This configuration is only available for VC++ builds.)
+#
 #CFG           *= Debug
 
 #
@@ -389,6 +406,10 @@ ARCHNAME   !:= $(ARCHNAME)-64int
 .ENDIF
 .ENDIF
 
+.IF "$(USE_LONG_DOUBLE)" == "define"
+ARCHNAME       !:= $(ARCHNAME)-ld
+.ENDIF
+
 ARCHDIR                = ..\lib\$(ARCHNAME)
 COREDIR                = ..\lib\CORE
 AUTODIR                = ..\lib\auto
@@ -471,12 +492,18 @@ LIBFILES  = $(LIBC) \
 .IF  "$(CFG)" == "Debug"
 OPTIMIZE       = -g -O2 -DDEBUGGING
 LINK_DBG       = -g
+.ELIF  "$(CFG)" == "DebugSymbols"
+OPTIMIZE       = -g -O2
+LINK_DBG       = -g
 .ELSE
 OPTIMIZE       = -s -O2
 LINK_DBG       = -s
 .ENDIF
 
 EXTRACFLAGS    =
+.IF "$(USE_CPLUSPLUS)" == "define"
+EXTRACFLAGS    += $(CXX_FLAG)
+.ENDIF
 CFLAGS         = $(EXTRACFLAGS) $(INCLUDES) $(DEFINES) $(LOCDEFS) $(OPTIMIZE)
 LINK_FLAGS     = $(LINK_DBG) -L"$(INST_COREDIR)" -L"$(CCLIBDIR)"
 OBJOUT_FLAG    = -o
@@ -533,11 +560,18 @@ LOCDEFS           = -DPERLDLL -DPERL_CORE
 SUBSYS         = console
 CXX_FLAG       = -TP -EHsc
 
-LIBC   = msvcrt.lib
+LIBC           = msvcrt.lib
 
 .IF  "$(CFG)" == "Debug"
 OPTIMIZE       = -Od -MD -Zi -DDEBUGGING
 LINK_DBG       = -debug
+.ELIF  "$(CFG)" == "DebugSymbols"
+OPTIMIZE       = -Od -MD -Zi
+LINK_DBG       = -debug
+.ELIF  "$(CFG)" == "DebugFull"
+LIBC           = msvcrtd.lib
+OPTIMIZE       = -Od -MDd -Zi -D_DEBUG -DDEBUGGING
+LINK_DBG       = -debug
 .ELSE
 # -O1 yields smaller code, which turns out to be faster than -O2 on x86 and x64
 OPTIMIZE       = -O1 -MD -Zi -DNDEBUG
@@ -608,7 +642,10 @@ LIBFILES   = $(LIBBASEFILES) $(LIBC)
 
 EXTRACFLAGS    = -nologo -GF -W3
 .IF "$(__ICC)" == "define"
-EXTRACFLAGS    = $(EXTRACFLAGS) -Qstd=c99
+EXTRACFLAGS    += -Qstd=c99
+.ENDIF
+.IF "$(USE_CPLUSPLUS)" == "define"
+EXTRACFLAGS    += $(CXX_FLAG)
 .ENDIF
 CFLAGS         = $(EXTRACFLAGS) $(INCLUDES) $(DEFINES) $(LOCDEFS) \
                $(PCHFLAGS) $(OPTIMIZE)
@@ -742,6 +779,7 @@ UTILS               =                       \
                ..\utils\perlivp        \
                ..\utils\libnetcfg      \
                ..\utils\enc2xs         \
+               ..\utils\encguess               \
                ..\utils\piconv         \
                ..\utils\corelist       \
                ..\utils\cpan           \
@@ -933,6 +971,7 @@ CFG_VARS    =                                       \
                cc=$(CC)                        ~       \
                ld=$(LINK32)                    ~       \
                ccflags=$(EXTRACFLAGS) $(OPTIMIZE) $(DEFINES) $(BUILDOPT)       ~       \
+               usecplusplus=$(USE_CPLUSPLUS)   ~       \
                cf_email=$(EMAIL)               ~       \
                d_mymalloc=$(PERL_MALLOC)       ~       \
                libs=$(LIBFILES:f)              ~       \
@@ -1058,6 +1097,7 @@ config.w32 : $(CFGSH_TMPL)
        @echo #undef NVff>>$@
        @echo #undef NVgf>>$@
        @echo #undef USE_LONG_DOUBLE>>$@
+       @echo #undef USE_CPLUSPLUS>>$@
 .IF "$(USE_LARGE_FILES)"=="define"
        @echo #define Off_t $(INT64)>>$@
        @echo #define LSEEKSIZE ^8>>$@
@@ -1160,6 +1200,11 @@ config.w32 : $(CFGSH_TMPL)
        @echo #define NVgf "g">>$@
        @echo #undef USE_LONG_DOUBLE>>$@
 .ENDIF
+.IF "$(USE_CPLUSPLUS)"=="define"
+       @echo #define USE_CPLUSPLUS>>$@
+.ELSE
+       @echo #undef USE_CPLUSPLUS>>$@
+.ENDIF
        @echo #endif>>$@
 
 ..\git_version.h : $(MINIPERL) ..\make_patchnum.pl
@@ -1186,7 +1231,6 @@ regen_config_h:
 
 $(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL
        $(MINIPERL) -I..\lib ..\configpm --chdir=..
-       if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL)
        $(XCOPY) ..\*.h $(COREDIR)\*.*
        $(XCOPY) *.h $(COREDIR)\*.*
        $(RCOPY) include $(COREDIR)\*.*
@@ -1419,7 +1463,7 @@ utils: $(PERLEXE) ..\utils\Makefile
        copy ..\README.tw       ..\pod\perltw.pod
        copy ..\README.vos      ..\pod\perlvos.pod
        copy ..\README.win32    ..\pod\perlwin32.pod
-       copy ..\pod\perldelta.pod ..\pod\perl5218delta.pod
+       copy ..\pod\perldelta.pod ..\pod\perl5219delta.pod
        $(PERLEXE) $(PL2BAT) $(UTILS)
        $(MINIPERL) -I..\lib ..\autodoc.pl ..
        $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q ..
@@ -1514,7 +1558,7 @@ distclean: realclean
        -if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API
        -if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
        -cd $(PODDIR) && del /f *.html *.bat roffitall \
-           perl5218delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
+           perl5219delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
            perlapi.pod perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod \
            perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \
            perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \
@@ -1525,7 +1569,7 @@ distclean: realclean
            perltru64.pod perltw.pod perluniprops.pod perlvos.pod \
            perlwin32.pod
        -cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \
-           perldoc perlivp libnetcfg enc2xs piconv cpan *.bat \
+           perldoc perlivp libnetcfg enc2xs encguess piconv cpan *.bat \
            xsubpp pod2html instmodsh json_pp prove ptar ptardiff ptargrep shasum corelist zipdetails
        -del /f ..\config.sh perlmain.c dlutils.c config.h.new \
            perlmainst.c
@@ -1563,9 +1607,9 @@ inst_lib : $(CONFIGPM)
 
 $(UNIDATAFILES) ..\pod\perluniprops.pod .UPDATEALL : $(MINIPERL) $(CONFIGPM) ..\lib\unicore\mktables Extensions_nonxs
        cd ..\lib\unicore && \
-       ..\$(MINIPERL) -I.. -I..\..\dist\Cwd\lib -I..\..\dist\Cwd mktables -P ..\..\pod -maketest -makelist -p
+       ..\$(MINIPERL) -I.. mktables -P ..\..\pod -maketest -makelist -p
 
-minitest : .\config.h $(MINIPERL) ..\git_version.h $(GLOBEXE) $(CONFIGPM) $(UNIDATAFILES) test-prep-gcc
+minitest : .\config.h $(MINIPERL) ..\git_version.h $(GLOBEXE) $(CONFIGPM) $(UNIDATAFILES) $(TESTPREPGCC)
        $(XCOPY) $(MINIPERL) ..\t\$(NULL)
        if exist ..\t\perl.exe del /f ..\t\perl.exe
        rename ..\t\miniperl.exe perl.exe
@@ -1573,7 +1617,7 @@ minitest : .\config.h $(MINIPERL) ..\git_version.h $(GLOBEXE) $(CONFIGPM) $(UNID
 # Note this perl.exe is miniperl
        cd ..\t && perl.exe TEST base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t opbasic/*.t op/*.t uni/*.t perf/*.t pragma/*.t
 
-test-prep : all utils ..\pod\perltoc.pod test-prep-gcc
+test-prep : all utils ..\pod\perltoc.pod $(TESTPREPGCC)
        $(XCOPY) $(PERLEXE) ..\t\$(NULL)
        $(XCOPY) $(PERLDLL) ..\t\$(NULL)
        $(XCOPY) $(GLOBEXE) ..\t\$(NULL)
@@ -1584,13 +1628,17 @@ test-prep : all utils ..\pod\perltoc.pod test-prep-gcc
 # your compiler, and upon the values of "x".
 # libstdc++-6.dll is copied if it exists as it, too, may then be needed.
 # Without this copying, the op/taint.t test script will fail.
-test-prep-gcc :
+
 .IF "$(CCTYPE)" == "GCC"
+TESTPREPGCC    = test-prep-gcc
+test-prep-gcc :
        if exist $(CCDLLDIR)\libgcc_s_seh-1.dll $(XCOPY) $(CCDLLDIR)\libgcc_s_seh-1.dll ..\t\$(NULL)
        if exist $(CCDLLDIR)\libgcc_s_sjlj-1.dll $(XCOPY) $(CCDLLDIR)\libgcc_s_sjlj-1.dll ..\t\$(NULL)
        if exist $(CCDLLDIR)\libgcc_s_dw2-1.dll $(XCOPY) $(CCDLLDIR)\libgcc_s_dw2-1.dll ..\t\$(NULL)
        if exist $(CCDLLDIR)\libstdc++-6.dll $(XCOPY) $(CCDLLDIR)\libstdc++-6.dll ..\t\$(NULL)
        if exist $(CCDLLDIR)\libwinpthread-1.dll $(XCOPY) $(CCDLLDIR)\libwinpthread-1.dll ..\t\$(NULL)
+.ELSE
+TESTPREPGCC    =
 .ENDIF
 
 test : test-prep
index 16980d4..c185643 100644 (file)
@@ -38,6 +38,7 @@ POD = perl.pod        \
        perl5184delta.pod       \
        perl5200delta.pod       \
        perl5201delta.pod       \
+       perl5202delta.pod       \
        perl5210delta.pod       \
        perl5211delta.pod       \
        perl5212delta.pod       \
@@ -47,6 +48,7 @@ POD = perl.pod        \
        perl5216delta.pod       \
        perl5217delta.pod       \
        perl5218delta.pod       \
+       perl5219delta.pod       \
        perl561delta.pod        \
        perl56delta.pod \
        perl581delta.pod        \
@@ -179,6 +181,7 @@ MAN = perl.man      \
        perl5184delta.man       \
        perl5200delta.man       \
        perl5201delta.man       \
+       perl5202delta.man       \
        perl5210delta.man       \
        perl5211delta.man       \
        perl5212delta.man       \
@@ -188,6 +191,7 @@ MAN = perl.man      \
        perl5216delta.man       \
        perl5217delta.man       \
        perl5218delta.man       \
+       perl5219delta.man       \
        perl561delta.man        \
        perl56delta.man \
        perl581delta.man        \
@@ -320,6 +324,7 @@ HTML = perl.html    \
        perl5184delta.html      \
        perl5200delta.html      \
        perl5201delta.html      \
+       perl5202delta.html      \
        perl5210delta.html      \
        perl5211delta.html      \
        perl5212delta.html      \
@@ -329,6 +334,7 @@ HTML = perl.html    \
        perl5216delta.html      \
        perl5217delta.html      \
        perl5218delta.html      \
+       perl5219delta.html      \
        perl561delta.html       \
        perl56delta.html        \
        perl581delta.html       \
@@ -461,6 +467,7 @@ TEX = perl.tex      \
        perl5184delta.tex       \
        perl5200delta.tex       \
        perl5201delta.tex       \
+       perl5202delta.tex       \
        perl5210delta.tex       \
        perl5211delta.tex       \
        perl5212delta.tex       \
@@ -470,6 +477,7 @@ TEX = perl.tex      \
        perl5216delta.tex       \
        perl5217delta.tex       \
        perl5218delta.tex       \
+       perl5219delta.tex       \
        perl561delta.tex        \
        perl56delta.tex \
        perl581delta.tex        \
index b76f8ba..2157224 100644 (file)
@@ -1,3 +1,7 @@
+#ifdef _MSC_VER
+#include <crtdbg.h>
+#endif
+
 #include "EXTERN.h"
 #include "perl.h"
 
@@ -20,6 +24,18 @@ int _CRT_glob = 0;
 int
 main(int argc, char **argv, char **env)
 {
+#ifdef _MSC_VER
+    /* Arrange for _CrtDumpMemoryLeaks() to be called automatically at program
+     * termination when built with CFG = DebugFull. */
+    int currentFlag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
+    currentFlag |= _CRTDBG_LEAK_CHECK_DF;
+    _CrtSetDbgFlag(currentFlag);
+
+    /* Change this -1 to the allocation number of any reported memory leaks to
+     * break on the allocation call that was leaked. */
+    _CrtSetBreakAlloc(-1L);
+#endif
+
     return RunPerl(argc, argv, env);
 }
 
index a4186a1..42c306b 100644 (file)
@@ -85,7 +85,7 @@ protected:
     {
        char *ptr = dirTableA[index];
        if (!ptr) {
-           /* simulate the existance of this drive */
+           /* simulate the existence of this drive */
            ptr = szLocalBufferA;
            ptr[0] = 'A' + index;
            ptr[1] = ':';
@@ -98,7 +98,7 @@ protected:
     {
        WCHAR *ptr = dirTableW[index];
        if (!ptr) {
-           /* simulate the existance of this drive */
+           /* simulate the existence of this drive */
            ptr = szLocalBufferW;
            ptr[0] = 'A' + index;
            ptr[1] = ':';
index d691635..c662887 100644 (file)
@@ -284,7 +284,7 @@ long VMem::AddRef(void)
  * is freed, therefore space needs to be reserved for them.  Thus, the minimum
  * block size (not counting the tags) is 8 bytes.
  *
- * Since memory allocation may occur on a single threaded, explict locks are not
+ * Since memory allocation may occur on a single threaded, explicit locks are not
  * provided.
  * 
  */
@@ -1012,7 +1012,7 @@ int VMem::HeapAdd(void* p, size_t size
     , BOOL bBigBlock
 #endif
     )
-{   /* if the block can be succesfully added to the heap, returns 0; otherwise -1. */
+{   /* if the block can be successfully added to the heap, returns 0; otherwise -1. */
     int index;
 
     /* Check size, then round size down to next long word boundary. */
index 1510805..a78c598 100644 (file)
@@ -149,7 +149,7 @@ static long filetime_to_clock(PFILETIME ft);
 static BOOL    filetime_from_time(PFILETIME ft, time_t t);
 static char*   create_command_line(char *cname, STRLEN clen,
                                    const char * const *args);
-static char*   qualified_path(const char *cmd);
+static char*   qualified_path(const char *cmd, bool other_exts);
 static void    ansify_path(void);
 static LRESULT win32_process_message(HWND hwnd, UINT msg,
                        WPARAM wParam, LPARAM lParam);
@@ -2142,7 +2142,7 @@ do_raise(pTHX_ int sig)
            }
        }
     }
-    /* Tell caller to exit thread/process as approriate */
+    /* Tell caller to exit thread/process as appropriate */
     return 1;
 }
 
@@ -2228,7 +2228,7 @@ win32_msgwait(pTHX_ DWORD count, LPHANDLE handles, DWORD timeout, LPDWORD result
      * This scenario can only be created if the timespan from the return of
      * MsgWaitForMultipleObjects to GetSystemTimeAsFileTime exceeds 1 ms. To
      * generate the scenario, manual breakpoints in a C debugger are required,
-     * or a context switch occured in win32_async_check in PeekMessage, or random
+     * or a context switch occurred in win32_async_check in PeekMessage, or random
      * messages are delivered to the *thread* message queue of the Perl thread
      * from another process (msctf.dll doing IPC among its instances, VS debugger
      * causes msctf.dll to be loaded into Perl by kernel), see [perl #33096].
@@ -3009,23 +3009,20 @@ do_popen(const char *mode, const char *command, IV narg, SV **args) {
        }
        else {
            int i;
+           const char *exe_name;
 
            Newx(args_pvs, narg + 1 + w32_perlshell_items, const char *);
            SAVEFREEPV(args_pvs);
            for (i = 0; i < narg; ++i)
                args_pvs[i] = SvPV_nolen(args[i]);
            args_pvs[i] = NULL;
+           exe_name = qualified_path(args_pvs[0], TRUE);
+           if (!exe_name)
+               /* let CreateProcess() try to find it instead */
+               exe_name = args_pvs[0];
 
-           if ((childpid = do_spawnvp_handles(P_NOWAIT, args_pvs[0], args_pvs, handles)) == -1) {
-               if (errno == ENOEXEC || errno == ENOENT) {
-                   /* possible shell-builtin, invoke with shell */
-                   Move(args_pvs, args_pvs+w32_perlshell_items, narg+1, const char *);
-                   Copy(w32_perlshell_vec, args_pvs, w32_perlshell_items, const char *);
-                   if ((childpid = do_spawnvp_handles(P_NOWAIT, args_pvs[0], args_pvs, handles)) == -1)
-                       goto cleanup;
-               }
-               else
-                 goto cleanup;
+           if ((childpid = do_spawnvp_handles(P_NOWAIT, exe_name, args_pvs, handles)) == -1) {
+               goto cleanup;
            }
        }
 
@@ -3550,8 +3547,15 @@ create_command_line(char *cname, STRLEN clen, const char * const *args)
     return cmd;
 }
 
+static const char *exe_extensions[] =
+  {
+    ".exe", /* this must be first */
+    ".cmd",
+    ".bat"
+  };
+
 static char *
-qualified_path(const char *cmd)
+qualified_path(const char *cmd, bool other_exts)
 {
     char *pathstr;
     char *fullcmd, *curfullcmd;
@@ -3590,10 +3594,16 @@ qualified_path(const char *cmd)
        if (cmd[cmdlen-1] != '.'
            && (cmdlen < 4 || cmd[cmdlen-4] != '.'))
        {
-           strcpy(curfullcmd, ".exe");
-           res = GetFileAttributes(fullcmd);
-           if (res != 0xFFFFFFFF && !(res & FILE_ATTRIBUTE_DIRECTORY))
-               return fullcmd;
+           int i;
+           /* first extension is .exe */
+           int ext_limit = other_exts ? C_ARRAY_LENGTH(exe_extensions) : 1;
+           for (i = 0; i < ext_limit; ++i) {
+               strcpy(curfullcmd, exe_extensions[i]);
+               res = GetFileAttributes(fullcmd);
+               if (res != 0xFFFFFFFF && !(res & FILE_ATTRIBUTE_DIRECTORY))
+                   return fullcmd;
+           }
+
            *curfullcmd = '\0';
        }
 
@@ -3830,7 +3840,7 @@ RETRY:
         * jump through our own hoops by picking out the path
         * we really want it to use. */
        if (!fullcmd) {
-           fullcmd = qualified_path(cname);
+           fullcmd = qualified_path(cname, FALSE);
            if (fullcmd) {
                if (cname != cmdname)
                    Safefree(cname);
index aa6992e..8a55202 100644 (file)
@@ -260,6 +260,31 @@ typedef unsigned short     mode_t;
 #  pragma intrinsic(_rotl64,_rotr64)
 #endif
 
+#  pragma warning(push)
+#  pragma warning(disable:4756;disable:4056)
+PERL_STATIC_INLINE
+double S_Infinity() {
+    /* this is a real C literal which can get further constant folded
+       unlike using HUGE_VAL/_HUGE which are data symbol imports from the CRT
+       and therefore can not by folded by VC, an example of constant
+       folding INF is creating -INF */
+    return (DBL_MAX+DBL_MAX);
+}
+#  pragma warning(pop)
+#  define NV_INF S_Infinity()
+
+/* selectany allows duplicate and unused data symbols to be removed by
+   VC linker, if this were static, each translation unit will have its own,
+   usually unused __PL_nan_u, if this were plain extern it will cause link
+   to fail due to multiple definitions, since we dont know if we are being
+   compiled as static or DLL XS, selectany simply always works, the cost of
+   importing __PL_nan_u across DLL boundaries in size in the importing DLL
+   will be more than the 8 bytes it will take up being in each XS DLL if
+   that DLL actually uses __PL_nan_u */
+extern const __declspec(selectany) union { unsigned __int64 __q; double __d; }
+__PL_nan_u = { 0x7FF8000000000000UI64 };
+#  define NV_NAN ((NV)__PL_nan_u.__d)
+
 #endif /* _MSC_VER */
 
 #ifdef __MINGW32__             /* Minimal Gnu-Win32 */
@@ -541,12 +566,12 @@ typedef struct {
     char pipech;    /* one char buffer for handles opened on pipes */
     int lockinitflag;
     CRITICAL_SECTION lock;
-/* this struct defintion breaks ABI compatibility with
+/* this struct definition breaks ABI compatibility with
  * not using, cl.exe's native VS version specitfic CRT. */
 #  if _MSC_VER >= 1400 && _MSC_VER < 1500
 #    error "This ioinfo struct is incomplete for Visual C 2005"
 #  endif
-/* VC 2005 CRT has atleast 3 different definitions of this struct based on the
+/* VC 2005 CRT has at least 3 different definitions of this struct based on the
  * CRT DLL's build number. */
 #  if _MSC_VER >= 1500
 #    ifndef _SAFECRT_IMPL
index 246375f..842bc07 100644 (file)
@@ -130,7 +130,6 @@ DllExport  int              win32_putenv(const char *name);
 DllExport  unsigned    win32_sleep(unsigned int);
 DllExport  int         win32_times(struct tms *timebuf);
 DllExport  unsigned    win32_alarm(unsigned int sec);
-DllExport  int         win32_stat(const char *path, Stat_t *buf);
 DllExport  char*       win32_longpath(char *path);
 DllExport  char*       win32_ansipath(const WCHAR *path);
 DllExport  int         win32_ioctl(int i, unsigned int u, char *data);
@@ -289,11 +288,11 @@ END_EXTERN_C
 #  undef abort
 #endif
 #define abort()                        win32_abort()
-#ifdef UNDER_CE
+#if defined(UNDER_CE) || defined(__MINGW32__)
 #  undef fstat
 #endif
 #define fstat(fd,bufptr)       win32_fstat(fd,bufptr)
-#ifdef UNDER_CE
+#if defined(UNDER_CE) || defined(__MINGW32__)
 #  undef stat
 #endif
 #define stat(pth,bufptr)       win32_stat(pth,bufptr)
index 271df2b..61eeecb 100644 (file)
@@ -1127,7 +1127,7 @@ do_raise(pTHX_ int sig)
            }
        }
     }
-    /* Tell caller to exit thread/process as approriate */
+    /* Tell caller to exit thread/process as appropriate */
     return 1;
 }